Nginx websocket代理

首先在http域配置

map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

然后在server域增加匹配条件(之前是放 location / {} 下面,发现所有的代理地址都会访问消息服务的地址)

location ^~/websocket {
    rewrite /websocket(.*)$ /$1 break;#去掉地址上加的websocket
    proxy_pass http://ip:port;#消息服务的ip端口
    proxy_redirect off;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    proxy_set_header Origin "";
}

为了解决上面的问题,在访问消息服务地址的时候,在地址后面拼了个websocket,在Nginx代理在时候把websocket去掉

`ws://${window.location.hostname}:${window.location.port}/websocket `

然后重启Nginx就可以了

 

posted @ 2022-06-28 16:05  wenwen。  阅读(1031)  评论(0编辑  收藏  举报