NGINX 反代 ws 总是失败,麻烦大佬帮忙看下配置

355 天前
 cmmulxuk

想用线路优化机反代大内存机,都是些自己 Docker 的小工具,emby 、miniflux 、哪吒面板之类的。

都是使用的 Nginx Proxy Manager ,原网站一切正常,用了 SSL ,反代 HTTPS 。

最后在 websockets 这里卡住了,websocket support 打开了,所有的同步加载的东西全都无法连接,哪吒面板“实时同步通断断开”,lobehub 接收完了之后再一起回复,而不是一个字一个字的往外蹦。

问 chatgpt4 说我配置正常的,GOOGLE 也查不到解决方案,麻烦大佬帮我看下配置是不是有问题。

#PROXY-START/
client_max_body_size 100M;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For '$proxy_add_x_forwarded_for';
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header Sec-WebSocket-Extensions $http_sec_websocket_extensions;
    proxy_set_header Sec-WebSocket-Key $http_sec_websocket_key;
    proxy_set_header Sec-WebSocket-Version $http_sec_websocket_version;
    proxy_cache off;
    proxy_redirect off;
    proxy_buffering off;

location / {
        proxy_ssl_server_name on;
        proxy_ssl_name example.com;
        proxy_ssl_protocols TLSv1.2 TLSv1.3;
        proxy_pass https://example.com/;
        proxy_set_header X-Forwarded-For $remote_addr;
        proxy_set_header Host example.com;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

location ~* \.(gif|png|jpg|css|js|woff|woff2)$
{
        proxy_ssl_server_name on;
        proxy_ssl_name example.com;
        proxy_ssl_protocols TLSv1.2 TLSv1.3;
	proxy_pass https://example.com;
    proxy_set_header Host example.com;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
    expires 1h;#图片缓存浏览器过期时间
}

location /ws {
    proxy_pass http://example.com;
    proxy_http_version 1.1;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header Host $host;
    proxy_set_header Origin $scheme://$host;
    proxy_cache_bypass $http_upgrade;
}

#PROXY-END/
2999 次点击
所在节点    NGINX
30 条回复
cmmulxuk
355 天前
@NowTime 这两行已经加了的,还是没用
magicZ
355 天前
upstream proxy102 {
server localhost:9999;
}

server {
listen 3478 ssl http2 default_server;
server_name xxx.yyy.com;
ssl_certificate /etc/nginx/keys/xxx.pem;
ssl_certificate_key /etc/nginx/keys/xxx.key;

location /wss {
proxy_pass http://proxy102; #代理到上面的地址去
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_read_timeout 86400;
proxy_send_timeout 86400;
}
}
poopoopoopoo
355 天前
是不是 upstream 写错了

http://172.17.0.1:8008 不能加 S

listen 8008 ssl;才能加 S
Lax
355 天前
@cmmulxuk 如果理解这几行的差异,就不会写出这样的失误。想解决问题先拿张纸画一下部署的逻辑结构吧,不是随便抓住一根稻草就能救命。
kokojack
355 天前
我的建议是,改用 lucky 反代,一开始也是用 nginx ,nginxwebui 之类的,现在用 lucky ,非常舒服,什么配置都不用写,非常强大
julyclyde
354 天前
@kokojack 你这个建议没啥用
找到真实原因之前,换软件应该不会有什么区别
ResidualBlood
354 天前
先用 官方 给的配置看看正常不
哪吒探针 https://nezha.wiki/guide/dashboard.html#%E9%85%8D%E7%BD%AE%E5%8F%8D%E5%90%91%E4%BB%A3%E7%90%86
我用的 这个 反代是正常的
cmmulxuk
354 天前
@ResidualBlood 我不是本机反代,我是反代的基础上再套一层反代 HTTPS ,优化线路。一直失败,估计是 VPS 哪里有问题没找出来,直接改其他方式了。
chaoschick
354 天前
location 的位置需要换一下 /ws 要在上面 /要在最后面 不然/会直接拦截掉/ws 的流量
kokojack
349 天前
@julyclyde #26 不会啊,用 Lucky 不需要写配置默认全加上,而且不冲突。无影响。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1005141

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX