配置完成Nginx后发现之前的Streamlit的页面通通无法访问,具体如下:
但是其他gradio、Vue的网站,都是正常访问的,
F12
->网络,可以看到
我这里 WebSocket 连接失败 ,是由于Nginx未对应配置,
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
打开nginx.conf
修改对应配置后,重启nginx即可
示例:
server {
listen 80;
server_name yoururl.xyz;
location / {
proxy_pass http://127.0.0.1:8001; # frps.ini中的vhost_http_port
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
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;
}
}
WebSocket 是一种基于 TCP 的网络通信协议,旨在实现客户端和服务器之间的双向通信。它允许在单个 TCP 连接上进行全双工(即同时进行发送和接收)通信。WebSocket 特别适用于需要实时更新的应用,比如在线游戏、聊天应用、实时数据流等。
WebSocket特点
- WebSocket 建立的连接是持久的,客户端和服务器在一次连接后可以持续交换消息,而不需要频繁建立和关闭连接,从而减少了网络延迟和开销。
- WebSocket 协议在数据传输中相对轻量,不需要像 HTTP 那样包含大量的头信息,数据包开销更小。
连接步骤
- 客户端通过发送 HTTP 请求向服务器发起 WebSocket 连接。请求中包含一些特定的头信息,如
Upgrade: websocket
和Sec-WebSocket-Key
- 服务器收到请求后,如果支持 WebSocket,会返回一个包含
Sec-WebSocket-Accept
头的响应,完成握手过程 - 握手成功后,HTTP 连接升级为 WebSocket 连接