同步发布在个人博客:https://njlife.top/post/66/nginx-websocket-returns-403
websocket功能在本地开发环境能正常使用,部署到远程服务器之后连接时返回403。代码都是一样的,本地能正常运行,那应该不是代码原因。与开发环境不一样的是远程服务器用了nginx对websocket做了反向代理,很可能是由于配置原因。
目前nginx对于代理websocket的配置:
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-real-ip $remote_addr;
关于这段配置的说明,可查看另一篇文章:nginx反向代理websocket
经过一系列google,在git上找到这个:websocket problem when deployed behind nginx。需要添加配置:
proxy_set_header Origin '';
把相关配置加上之后,一切都正常了。
网友评论