使用 Caddy 的 Web 套接字 (WSS) 的反向代理



Project GitHub URL

我刚刚开始使用球童。我制作了一个简单的聊天应用程序,我正在使用球童提供服务。WebSocket 由应用程序在 ws 而不是
wss 上提供,类似于应用程序在 HTTP 而不是 https 上提供应用程序的方式。 我正在尝试使用球童保护协议,并且已经成功地为 https 做到了这一点。由于我在使用 https 时无法使用 ws,因此我也需要在 wss 上提供 WebSockets。 我在文档中找不到一种方法,在那里我可以找到如何将代理 wss 反向到 ws,就像我对 https 到 http 所做的那样。

我尝试了什么

your.tld.com {
proxy / 0.0.0.0:8266 {
transparent
websocket
}
}

2(

your.tld.com {
proxy / 0.0.0.0:8266 {
transparent
}
proxy /ws 0.0.0.0:8266 {
transparent
}
}

3(

your.tld.com {
proxy / 0.0.0.0:8266 {
transparent
}
proxy /ws 0.0.0.0:8266/ws {
transparent
}
}

上述方法不起作用。希望能在这里找到解决方案。

我有这样的东西是我的配置文件:

proxy /api/v1/streaming http://localhost:4000 {
websocket
} 

所以对你来说,这将是这样的:

your.tld.com {
proxy / 0.0.0.0:8266 {
transparent
}
proxy /ws http://0.0.0.0:8266 {
websocket
}
}

当我开始使用httpswssssl时,我已经花了一整晚来解决这个问题。它总是说connection stopped before establish400错误代码。

就在几分钟前,我找到了解决方案:

0. 云耀斑

在 SSL/TLS 选项卡中:

  • 如果您有自己的certSSLHTTPS:将其设置为Full.(以下 123 个步骤假设您拥有自己的 https 认证(

  • 如果您只有一个http server:将其设置为Flexible。 (Cloudflare会自动向您的网站添加httpsssl

  • 之后,转到DNS选项卡,设置Proxied

如果您不确定自己在做什么,只需转到DNS选项卡,设置DNS only

1.确保您具有正确的代理配置。

server {
listen 80;
server_name ai-tools-online.xyz;
return 301 https://ai-tools-online.xyz$request_uri;
}
server {
listen 443 ssl http2;
ssl_certificate       /data/v2ray.crt;
ssl_certificate_key   /data/v2ray.key;
ssl_protocols         TLSv1.2 TLSv1.3;
#ssl_ciphers           3DES:RSA+3DES:!MD5;
server_name ai-tools-online.xyz;
location / {
proxy_pass http://127.0.0.1:5000;
}
location /socket.io {
proxy_http_version 1.1;
proxy_buffering off;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://127.0.0.1:5000/socket.io;
}
}

ai-tools-online.xyz是您的域,http://127.0.0.1:5000是您的套接字服务器。

2. 确保您的服务器Cross-Origin Controls设置为'*'以允许Cross-Origin Access

对于flask-socketio,就是使用flask_socketio.SocketIO(app, cors_allowed_origins = '*')

3. 您必须重新启动 nginx 才能让新配置工作

systemctl restart nginx

4. 有关如何设置caddy的详细信息,请参阅以下链接:

https://github.com/yingshaoxo/Web-Math-Chat#reverse-proxy-configuration-for-https https://caddy.community/t/using-caddy-0-9-1-with-socket-io-and-flask-socket-io/508/6 https://www.nginx.com/blog/nginx-nodejs-websockets-socketio/

相关内容

  • 没有找到相关文章

最新更新