在生产中,如果前后端都部署在同一台服务器上的话就不用nginx配置webscket做转发,前端和后端部署在不同的服务器上,因此可以用nginx配置websocket转发到后端,后端再通过nginx转发回应。
支持ws:
在nginx的conf文件夹中的nginx.conf配置文件添加server:
server {
listen 9696;
server_name localhost;
index index.html;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://192.168.3.100:9696;
proxy_connect_timeout 60s;
proxy_read_timeout 60;
proxy_send_timeout 60s;
}
}
支持wss: 前提是你的服务器已经安装https证书
在nginx的conf文件夹中的nginx.conf配置文件添加server:
server {
listen 9696 ssl;
server_name localhost;
ssl_certificate /usr/local/nginx/ssl/2505855__cloudbae.cn.pem;
ssl_certificate_key /usr/local/nginx/ssl/2505855__cloudbae.cn.key;
ssl_session_timeout 20m;
ssl_verify_client off;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $host;
proxy_set_header X-NginX-Proxy true;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_pass http://192.168.3.100:9696;
proxy_connect_timeout 60s;
proxy_read_timeout 60;
proxy_send_timeout 60s;
}
}
在此只记下实际开发中遇到问题的解决办法,不全之处请谅解!