基本上我要做的是在客户端上开始一个安全的websocket连接,通过nginx,nginx将终止TLS,而不仅仅是将websocket连接代理到服务器,让nginx处理websocket升级,并将套接字流数据发送到TCP服务器或Unix域套接字。
现有的nginx模块和配置可以做到这一点吗?
proxy_pass可以通过Unix域套接字连接到服务器
proxy_pass http://unix:/tmp/backend.socket:/uri/;
但这意味着它仍然通过 unix 域套接字使用 http,并且服务器负责处理 websocket 升级。我正在尝试让nginx进行升级,以便只有原始套接字流数据才能到达我的服务器。
有点像proxy_pass和fastcgi_pass的混合体。
我是否必须修改这些模块之一才能实现,或者是否有某种方法可以将其配置为工作?
所以我最终意识到的是代理只是代理,不解析协议。nginx中没有内置的东西(尽管apache中的mod_ws可以做到这一点(可以实际处理websockets协议,nginx代理函数只是将流转发到后端服务器。我正在为此研究另一种方法,因为让网络服务器完成繁重工作的希望并不容易。