我一直在使用websockets的Perl Mojolicious項目。我想在運行apache的共享服務器上啓動它,並使用proxyPass和proxyPassReverse使我的Mojolicious代碼與Hypnotoad一起運行更漂亮。Apache proxyPassReverse和Websockets
我把它設置如下。
Apache網址:
mydomain.com
Hypnotoad網址:
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是穩定的生產環境?
@ user1439590你應該接受這個作爲答案 – lkraav