要在 Nginx 中转发 WebSocket 连接,需要对其进行一些特殊的配置。以下是一个简单的示例:
http {
upstream websocket {
server localhost:3000;
}
server {
listen 80;
location /websocket {
proxy_pass http://websocket;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
}
}
}
在这个示例中,我们首先定义了一个名为 websocket
的 upstream 服务器,它指向本地运行的 WebSocket 服务器。
然后,我们创建了一个新的虚拟主机,并将其绑定到端口 80 上。在该虚拟主机中,我们定义了一个新的位置(/websocket
),用于接收所有 WebSocket 请求。
最后,在该位置上,我们使用 proxy_pass
指令将请求转发给 websocket
upstream,并使用 proxy_http_version
、proxy_set_header Upgrade
和 proxy_set_header Connection "Upgrade"
来启用 WebSocket 支持。
请注意,如果您的 WebSocket 服务器需要通过 HTTPS 进行连接,则需要使用 SSL/TLS 终止器来处理加密层。在这种情况下,请确保在 Nginx 配置文件中添加正确的 SSL/TLS 设置。