有没有办法使Nginx终止websocket连接并将仅套接字流传递给服务器?

时间:2018-08-22 17:43:18

标签: nginx websocket

基本上,我要做的是在客户端建立安全的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进行升级,以便只有原始套接字流数据才能到达我的服务器。

Sorta就像proxy_pass和fastcgi_pass之间的混合。

我是否必须修改其中一个模块以使其成为可能?或者有某种方法可以配置该模块以使其工作?

1 个答案:

答案 0 :(得分:0)

所以我最终意识到代理是代理,而不是解析协议。 nginx内建没有任何东西(尽管apache中的mod_ws可以做到)实际上可以处理websockets协议,但nginx代理功能只是将流转发到后端服务器。我正在为此尝试另一种方法,因为希望Web服务器承担繁重的工作不会很容易。