使用 nginx 作为 websocket 连接的代理

Posted

技术标签:

【中文标题】使用 nginx 作为 websocket 连接的代理【英文标题】:Use nginx as proxy for websocket connection 【发布时间】:2016-12-12 01:37:25 【问题描述】:

如何使用 nginx 作为 websocket 的代理? 如果我需要从 clientSite.com(javascript) 连接到 socketSite.com:port 而且我不会显示用户的链接“socketSite.com:port”

我可以使用 nginx 代理将请求重定向到 websocket 服务器吗?

【问题讨论】:

【参考方案1】:

当然可以!使用以下配置:

location /myHandler
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection "upgrade";
    proxy_set_header HOST $host;
    proxy_set_header X_Forwarded_For $remote_addr;
    proxy_pass http://localhost:8880;
    proxy_redirect default;
    client_max_body_size 1000m;
 

我使用弹簧 websocket。 /myHandler 是我创建 websocket 连接的 URL,http://localhost:8880; 是我的 Tomcat 服务器地址。 Nginx 服务器和 Tomcat 在同一台机器上运行。

【讨论】:

以上是关于使用 nginx 作为 websocket 连接的代理的主要内容,如果未能解决你的问题,请参考以下文章

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

nginx作为Websocket的代理发送短信

Nginx 作为 websockets 和 post 请求的转发代理

将 nginx 配置为 websocket 的代理

播放框架:使用 Apache 保护 WebSocket

websocket使用nginx作为反向代理