nginx.conf配置
server {
listen 8090;
server_name localhost;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
add_header Access-Control-Allow-Headers 'DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Authorization';
if ($request_method = 'OPTIONS') {
return 204;
}
location / {
#要代理的websocket所在的IP和端口号,注意是http不是ws
proxy_pass http://192.168.1.130:8080;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}
测试地址
假如,nginx服务IP地址是192.168.1.129,则请求代理的websocket地址为:ws://192.168.1.129:8090/websocket业务路径
该博客介绍了如何通过Nginx配置代理WebSocket服务。配置文件`nginx.conf`中设置了监听端口8090,并将请求代理到192.168.1.130:8080的WebSocket服务上。通过设置`add_header`允许跨域请求,并处理预检请求。测试时,用户可以通过ws://192.168.1.129:8090/websocket业务路径连接WebSocket。
2688





