nginx代理websocket,ip+端口可以正常访问,但是使用域名时连接后会立马断开(报错:1006 false),其中nginx内应当增加的配置都增加了,还是不可以,请问是什么原因
location /api/{
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://10.96.163.90:1700/; #后端项目接口地址
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_connect_timeout 600s;
proxy_read_timeout 600s;
proxy_send_timeout 600s;
}
怀疑是DNS配置有问题~
#Nginx相关命令
systemctl stop nginx
systemctl start nginx
systemctl restart nginx
#查看监听端口
netstat -anp|grep 您的端口
针对此问题,首先需要确认nginx的相关配置是否正确。其次,需要根据错误信息对问题进行调试。
对于websocket连接自动断开的问题,可能是由于nginx代理配置不正确导致的。正确的配置示例如下: 在http模块下添加如下配置:
map $http_upgrade $connection_upgrade {
default upgrade;
'' close;
}
在server模块的location里添加以下配置:
location / {
proxy_pass http://your-backend-ip:your-backend-port;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
}
需要注意的是,your-backend-ip
和your-backend-port
需要替换为实际的后端IP和端口。
1006错误通常表示连接关闭,原因是协议错误或者代理服务器意外关闭连接。如果配置正确而仍然出现该错误,则可能是后端程序问题,需要进一步排查后端程序的代码和配置。
至于false错误,则需要具体分析报错的上下文,无法一概而论。
总结:
1.确认nginx代理配置是否正确,特别是关于websocket的配置。
2.根据错误码和具体情况进行调试,排除掉后端程序等可能引起错误的因素。
3.建议参考以上的springboot配置方法,获取websocket连接中的真实IP地址。