要在nginx上配置反向代理WebSocket,需要使用proxy_pass指令,并配置WebSocket的特殊头。以下是一个示例配置:
server {
listen 80;
server_name example.com;
location /ws {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header X-Real-IP $remote_addr; # 获取客户端IP
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
}
}
upstream backend {
server 127.0.0.1:3000;
}
在这个配置中,nginx将收到的所有WebSocket连接请求代理到http://backend,它在此处定义为127.0.0.1:3000。 proxy_http_version指令设置为1.1,以确保nginx可以正确处理WebSocket。proxy_set_header指令用于配置WebSocket的特殊头,这些头包括Upgrade,Connection和Host。
请注意,这只是一个基本的配置示例,实际配置可能会因情况而异。确保你的nginx版本支持WebSocket,并在进行更改之前备份您的现有配置文件。