Open yidao620c opened 4 years ago
学习了
感谢分享。
为何我配置了以后wss连接不上?有排查办法吗
写的非常好,文章中每个点都是工作中碰到proxy wss时的问题!特别是多次代理转发,这个简直差点让我疯掉
感谢分享,其实我更想知道这里注释掉Host $host意味着什么?,我目前也因为网络环境和业务等原因,需要双重代理后台接口和websocket,遇到双重代理websocket导致404问题,其中普通http接口通过两个nginx代理都一切顺利,没有出现问题,但ws访问却不行,我两台都设置了同样的ws相关配置,包括upgrade和connection,也包含请求头如X-Real-IP,X-Forwarded-For,HOST这些,还有http块里的map。其中在贴近后端服务那台nginx的error.log里,我看到的是ws接口访问其总是去通过文件目录访问ws接口,如接口名为/ws01,那错误日志里就是/usr/local/nginx/ws01,并没有通过正确的ip:port/ws01访问,那此时通过文件找是肯定找不到这个路径的啊,这让我很费解,我怀疑就是这个host导致的,我回去试一下注释掉这个HOST。
太感谢了,不知道说什么,只能说楼主nb,解决了websocket双重代理时一直访问到文件上导致404的问题
被多层代理坑了不少时间,websocket比较难调试,走了不少弯路,看了博主的文章试了下去除host果然成功了。 配置好之后一直404,nginx日志使用各种格式打印也没看出问题,多层代理中如果设置了service_name,多层转发的host对不上导致404。 特意登录评论下,非常感谢博主。
https://www.xncoding.com/2018/03/12/fullstack/nginx-websocket.html
WebSocket协议相比较于HTTP协议成功握手后可以多次进行通讯,直到连接被关闭。但是WebSocket中的握手和HTTP中的握手兼容, 它使用HTTP中的Upgrade协议头将连接从HTTP升级到WebSocket。这使得WebSocket程序可以更容易的使用现已存在的基础设施。 WebSocket工作在HTTP的80和443端口并使用前缀ws://或者wss://进行协议标注,在建立连接时