nginx转发socket端口常见场景:在线学习应用,在常规功能之外,增加一个聊天室功能,后端选择swoole提供服务提供者,同时不想前端直接ip:port方式链接到服务,需要使用nginx进行转发。
常规情况,我们可以在用户页面,直接建立socket链接,但这样的操作会暴露端口,带来一定的安全隐患,使用nginx进行转发,可以隐藏端口。额外的问题就是一些header参数也需要在转发过程中带给socket服务提供者,其他只需要nginx处理一下从常规协议转换到websocket就可以。
其中,"upgrade"是逐跳(hop-by-hop)头,无法从客户端转发到代理服务器,通过转发代理,客户端可以使用connect方法来规避此问题。这不适用于反向代理,因为客户端不知道任何代理服务器,并且需要在代理服务器上进行特殊处理。同时逐跳头包含"upgrade"和"connection"都无法传递,则需要在转换为websocket的时候带上这两个参数:例如:
proxy_passhttp://backend;
proxy_set_headerupgrade$http_upgrade;

}
进阶:让转发到代理服务器的"connection"头字段的值,取决于客户端请求头的"upgrade"字段值。例如:
map$http_upgrade$connection_upgrade{
proxy_passhttp://backend;
proxy_set_headerupgrade$http_upgrade;
proxy_set_headerconnection$connection_upgrade;
}
以上就是Nginx的socket转发端口如何配置的详细内容,更多请关注主机测评网其它相关文章!
本文来源:独立服务器--Nginx的socket转发端口如何配置(nginx转发22端口ssh)
本文地址:https://www.idcbaba.com/duli/3240.html
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 1919100645@qq.com 举报,一经查实,本站将立刻删除。



