要在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,并在进行更改之前备份您的现有配置文件。