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
}
}
当我开始使用https
或wss
或ssl
时,我已经花了一整晚来解决这个问题。它总是说connection stopped before establish
400
错误代码。
就在几分钟前,我找到了解决方案:
0. 云耀斑
在 SSL/TLS 选项卡中:
-
如果您有自己的
cert
或SSL
或HTTPS
:将其设置为Full
.(以下 123 个步骤假设您拥有自己的 https 认证( -
如果您只有一个
http server
:将其设置为Flexible
。 (Cloudflare会自动向您的网站添加https
或ssl
。 -
之后,转到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/