我应该使用nginx作为WAMP的代理吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我应该使用nginx作为WAMP的代理吗?相关的知识,希望对你有一定的参考价值。

伙计们!

我构建了一个基于WebSocket的聊天应用程序。作为后端,我使用phpnginx作为WebSocket连接的代理。

搜索关于WS的PHP库,给了我一个棘轮。此工具支持WAMP协议。关于它的一些事情:http://wamp-proto.org/why/

好吧,我决定使用这个协议 - 它似乎很有用。我以标准方式调整了nginx用于代理WebSocket连接。而对于在前端/后端使用WebSocket的常见问题 - 一切正常。

但是,如果我开始在后端使用WAMP并尝试在前端使用autobahn.js作为WAMP,我每次都会收到426 No Sec-WebSocket-Protocols请求支持作为响应。在PHP我看到来自nginx的连接没有收到。因此,据我所知,nginx不会以正确的方式处理与WAMP子协议的连接。

所以,我不明白,我应该使用nginx作为WAMP的代理吗? WAMP只是WebSocket的子协议,但对我不起作用。

有人知道问题出在哪里吗?

答案

似乎Nginx没有将客户端宣布的WebSocket子协议转发到后端WAMP路由器。

尝试将此添加到您的Nginx conf:

proxy_set_header Sec-WebSocket-Protocol $http_sec_websocket_protocol

见:https://stackoverflow.com/a/36506746/884770

以上是关于我应该使用nginx作为WAMP的代理吗?的主要内容,如果未能解决你的问题,请参考以下文章

Android 我应该在异步任务中将片段作为弱引用传递吗?

使用 nginx 作为 websocket 连接的代理

为什么我推荐Nginx作为后端服务器代理

HAProxy 与 Nginx

手机app服务器可以用nginx吗

【nginx】如何解决使用nginx作为反向代理端口耗尽问题?