首页 文章

Apache proxyPassReverse和Websockets

提问于
浏览
18

我一直在研究一个使用websockets的Perl Mojolicious项目 . 我想在运行apache的共享服务器上启动它,并使用proxyPass和proxyPassReverse使我的Mojolicious代码运行Hypnotoad更漂亮 .

我把它设置如下 .

Apache网址:

mydomain.com

催眠网址:

mydomain.com:8080

使用以下apache条目,我可以将Hypnotoad服务器反向代理

project.mydomain.com

apache.conf条目

<VirtualHost *:80>
  ServerName project.mydomain.com
  DocumentRoot /var/www/project
  <Directory /var/www/project/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
  </Directory>
  ProxyRequests Off
  ProxyPreserveHost On
  ProxyPass / http://mydomain.com:8080/ keepalive=On
  ProxyPassReverse / http://mydomain.com:8080/
  RequestHeader set X-Forwarded-HTTPS "0"
</VirtualHost>

但是当我使用时,我的websocket请求会出现404错误:

ws://project.mydomain.com/get-data

我使用时出现302错误:

ws://mydomain.com:8080/get-data

我想这不会是一个问题,因为websocket没有检查身份验证,但他们使用Mojolicious路由来检查你是否可以通过websocket发布 .

从我所看到的Apache不支持反向代理websockets . 在apache / httpd conf文件中 .

有没有人找到一个可用的解决方案,使用Apache对 生产环境 环境稳定?

3 回答

相关问题