Nginx websocket代理

首先在http域配置

1
2
3
4
map $http_upgrade $connection_upgrade {
  default upgrade;
  '' close;
}

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

1
2
3
4
5
6
7
8
9
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 @   wenwen。  阅读(1083)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示