我使用nginx的86端口代理的websocket,用postman测试的时候一直报这个错,
经过测试,直接请求端口号又是正常的
那基本可以确认是nginx代理的问题出了点问题,经检查发现配置不对,调整后正常了,调整后如下
location /websocket/{
proxy_buffer_size 128k;
proxy_buffers 32 32k;
proxy_busy_buffers_size 128k;
proxy_pass http://127.0.0.1:7095/secondary-transaction-server/websocket/;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header Host $host;
proxy_connect_timeout 3s;
proxy_read_timeout 60s;
proxy_send_timeout 12s;
proxy_buffering off;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_set_header X-Forwarded-Proto $scheme;
}
其中最重要的是三个
//告诉nginx
使用HTTP/1.1
通信协议,这是websoket
必须要使用的协议
proxy_http_version 1.1;
//下面两个是告诉nginx
,如果是WebSocket时,需要响应http
升级请求
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";