vue項(xiàng)目怎樣用nginx反向代理WebSocket請(qǐng)求地址
vue用nginx反向代理WebSocket請(qǐng)求地址
原因
在VUE項(xiàng)目中使用WebSocket時(shí),是將IP與端口進(jìn)行固定,但是當(dāng)環(huán)境地址發(fā)生變更時(shí),就需要在代碼中進(jìn)行修改,并重新打包發(fā)布版本,很是麻煩,當(dāng)然這樣也是不可取的。
因此使用nginx反向代理WebSocket就可以解決這個(gè)問(wèn)題。
VUE項(xiàng)目代碼片段
<script>
export default {
data(){
return {
webSocket: null
}
},
mounted(){
this.initWebSocket();
},
methods:{
initWebSocket(){
let vm = this;
let wsServer = `${location.protocol === 'https' ? 'wss' : 'ws'}://${location.host}/websocket`;
vm.webSocket = new WebSocket(wsServer);
vm.webSocket.onopen = function(event) {
};
vm.webSocket.onmessage = function(msg) {
};
vm.webSocket.onClose = function(msg) {
};
vm.webSocket.onError = function(err) {
}
}
}
}
</script>nginx文件配置
events {
worker_connections 1024; ## Default: 1024
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
server {
listen 9001;
server_name localhost;
location / {
root D:/code/ai-village-html/dist/;
index index.html index.htm;
}
#nginx配置websocket
location ^~ /websocket {
proxy_pass http://192.168.1.11:8088; #websocket地址
proxy_http_version 1.1;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_read_timeout 120s;
proxy_set_header Upgrade websocket;
proxy_set_header Connection Upgrade;
}
location ^~/proxy{
rewrite ^/proxy/(.*)$ /$1 break; #代理字符串
proxy_pass http://192.168.1.11:8088; #需要代理的地址
}
}
}
這樣就可以方便、快捷實(shí)現(xiàn)在發(fā)生環(huán)境改變不改動(dòng)代碼的情況下對(duì)WebSocket請(qǐng)求進(jìn)行配置!
vue與nginx配置websocket反代
vue配置websocket反代
創(chuàng)建連接
this.url = `ws://${location.host}/UMS-CLUSTER-WS/websocket/test` // 使用location.host的目的是在當(dāng)前項(xiàng)目運(yùn)行的域名和端口號(hào)下發(fā)起ws連接,例如本地為localhost:80
new WebSocket(this.url) // 創(chuàng)建連接config配置
vue.config.js的反代中進(jìn)行如下配置
proxy: {
? ? ? '/WS': {
? ? ? ? target: clusterWsServer, // 后臺(tái)線上環(huán)境地址
? ? ? ? pathRewrite: { '^/WS': '' },
? ? ? ? ws: true,
? ? ? ? changeOrigin: true
? ? ? }
? ? }nginx配置websocket反代
? #nginx配置websocket
? location /WS/ {
? ? ? ? proxy_pass ?http://****:8666/; #websocket線上后臺(tái)地址
? ? ? ? proxy_http_version ? ?1.1;
? ? ? ? proxy_set_header ? ? ?Host ? ? ? ? ? ? ?$host;
? ? ? ? proxy_set_header ? ? ?X-Real-IP ? ? ? ? $remote_addr;
? ? ? ? proxy_set_header ? ? ?X-Forwarded-For ? $proxy_add_x_forwarded_for;
? ? ? ? proxy_read_timeout ? ?120s;
? ? ? ? proxy_set_header ? ? ?Upgrade ? ? ? ? ? websocket; #配置連接方式為websocket
? ? ? ? proxy_set_header ? ? ?Connection ? ? ? ?Upgrade;
? }總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue SPA 初次進(jìn)入加載動(dòng)畫(huà)實(shí)現(xiàn)代碼
今天小編就為大家分享一篇Vue SPA 初次進(jìn)入加載動(dòng)畫(huà)實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-11-11
vuejs在解析時(shí)出現(xiàn)閃爍的原因及防止閃爍的方法
這篇文章主要介紹了vuejs在解析時(shí)出現(xiàn)閃爍的原因及防止閃爍的方法,本文介紹的非常詳細(xì),具有參考借鑒價(jià)值,感興趣的朋友一起看看吧2016-09-09
vue2.0 實(shí)現(xiàn)導(dǎo)航守衛(wèi)(路由守衛(wèi))
vue-route 提供的 beforeRouteUpdate 可以方便地實(shí)現(xiàn)導(dǎo)航守衛(wèi)(navigation-guards)。這篇文章主要介紹了vue2.0 實(shí)現(xiàn)導(dǎo)航守衛(wèi)(路由守衛(wèi))的相關(guān)知識(shí),需要的朋友可以參考下2018-05-05
Vue實(shí)現(xiàn)購(gòu)物車(chē)基本功能
這篇文章主要為大家詳細(xì)介紹了Vue實(shí)現(xiàn)購(gòu)物車(chē)的基本功能,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-11-11
使用vue打包進(jìn)行云服務(wù)器上傳的問(wèn)題
這篇文章主要介紹了使用vue打包進(jìn)行云服務(wù)器上傳,本文給大家介紹的非常詳細(xì),對(duì)大家的工作或?qū)W習(xí)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03
uni-app中vue3表單校驗(yàn)失敗的問(wèn)題及解決方法
最近遇到這樣的問(wèn)題在app中使用uni-forms表單,并添加校驗(yàn)規(guī)則,問(wèn)題是即使輸入內(nèi)容,表單校驗(yàn)依然失敗,本文給大家分享uni-app中vue3表單校驗(yàn)失敗的問(wèn)題及解決方法,感興趣的朋友一起看看吧2023-12-12
Vue3中reactive丟失響應(yīng)式的問(wèn)題解決(避大坑!)
這篇文章主要給大家介紹了關(guān)于Vue3中reactive丟失響應(yīng)式的問(wèn)題解決,vue3中reactive定義的引用類(lèi)型直接賦值導(dǎo)致數(shù)據(jù)失去響應(yīng)式 ,需要的朋友可以參考下2023-07-07
vue使用vue-video-player無(wú)法播放本地視頻的問(wèn)題及解決
這篇文章主要介紹了vue使用vue-video-player無(wú)法播放本地視頻的問(wèn)題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08
客戶(hù)端(vue框架)與服務(wù)器(koa框架)通信及服務(wù)器跨域配置詳解
本篇文章主要介紹了客戶(hù)端(vue框架)與服務(wù)器(koa框架)通信及服務(wù)器跨域配置詳解,具有一定的參考價(jià)值,有興趣的可以了解一下2017-08-08

