16.使用nginx作为反向代理服务器
优质
小牛编辑
136浏览
2023-12-01
使用nginx作为前端的反向代理将请求传递给应用是可行的。然而,只有nginx 1.4版本以上才支持WebSocket协议。下面是nginx代理HTTP和WebSocket请求的一个最基本的配置:
server { listen 80; server_name _; location / { include proxy_params; proxy_pass http://127.0.0.1:5000; } location /socket.io { include proxy_params; proxy_http_version 1.1; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass http://127.0.0.1:5000/socket.io; } }
下面的例子增加了对负载平衡多个服务器的支持:
upstream socketio_nodes { ip_hash; server 127.0.0.1:5000; server 127.0.0.1:5001; server 127.0.0.1:5002; # to scale the app, just add more nodes here! } server { listen 80; server_name _; location / { include proxy_params; proxy_pass http://127.0.0.1:5000; } location /socket.io { include proxy_params; proxy_http_version 1.1; proxy_buffering off; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "Upgrade"; proxy_pass http://socketio_nodes/socket.io; } }
虽然上面的例子可以作为最初的配置工作,要知道生产环境安装的nginx需要一个完整的配置,包括部署的其它方面,例如服务于静态文件的assert和SSL支持。