apache websockets反向代理

Posted

技术标签:

【中文标题】apache websockets反向代理【英文标题】:apache websockets reverse proxy 【发布时间】:2015-05-06 14:19:46 【问题描述】:

如何让 Apache 反向代理 Web 套接字连接?

我有一个聊天室应用程序,可以在本地主机上正常工作,但不能通过反向代理进行连接。

如何设置它才能正常工作?

<VirtualHost *:80>
    ServerAdmin me@gmail.com
    ProxyRequests off
    DocumentRoot /var/www

    ProxyPreserveHost On


    ServerName 82.2.180.6

    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html

    ErrorLog $APACHE_LOG_DIR/error.log
    CustomLog $APACHE_LOG_DIR/access.log combined


    LogLevel error
    <Location />
     ProxyPass http://127.0.0.1:3050/
     ProxyPassReverse http://127.0.0.1:3050/
     Order allow,deny
     Allow from all
    </Location>

</VirtualHost>

【问题讨论】:

【参考方案1】:

是的,有可能。我们已经使用 Apache 来反向代理 websocket。

确保您的 Apache 是使用以下模块构建的:mod_proxy_wstunnel。版本 2.4.5 之后支持。

然后你只需要找出你的 websocket 正在使用哪个端口。

如果它也使用3050,那么你需要这样的东西:

LoadModule proxy_wstunnel_module modules/mod_proxy_wstunnel.so

#***SKIPPED OTHER HTTPD CONFIG***

   <Location />
        ProxyPass ws://127.0.0.1:3050/
        ProxyPassReverse ws://127.0.0.1:3050/
   </Location>

【讨论】:

以上是关于apache websockets反向代理的主要内容,如果未能解决你的问题,请参考以下文章

使用 Apache 反向代理的 Ratchet websocket 没有响应

如何使用 Apache 作为 WebSockets 的反向代理,以 Undertow 作为服务器

宝塔 apache 反向代理配置wss服务

Apache 反向代理背后的 Apache Zeppelin

使用 nginx 作为反向代理运行 Apache Zeppelin

Nginx websocket反向代理