Tôi đã làm việc trên một dự án Perl Mojolicious sử dụng websockets. Tôi muốn khởi chạy nó trên một máy chủ chia sẻ chạy apache và sử dụng proxyPass và proxyPassReverse để làm cho url đẹp hơn cho mã Mojolicious của tôi đang chạy với Hypnotoad.Apache proxyPassReverse và Websockets
Tôi đã thiết lập nó như sau.
Apache url:
mydomain.com
Hypnotoad url:
mydomain.com:8080
Với mục apache sau tôi có thể đảo ngược proxy server Hypnotoad để
project.mydomain.com
nhập 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>
Tuy nhiên yêu cầu WebSocket tôi đưa ra một lỗi 404 khi tôi sử dụng:
ws://project.mydomain.com/get-data
và một lỗi 302 khi tôi sử dụng:
ws://mydomain.com:8080/get-data
Tôi đoán đây sẽ không phải là một vấn đề được các WebSocket đã không kiểm tra xác thực, nhưng họ sử dụng các tuyến đường Mojolicious để kiểm tra xem bạn có thể đăng thông qua websocket hay không.
Từ những gì tôi có thể thấy, Apache không hỗ trợ websockets proxy ngược. Trong tập tin conf apache/httpd.
Có ai đã tìm thấy giải pháp có thể sử dụng cho việc này bằng Apache ổn định cho môi trường sản xuất không?
@ user1439590 bạn nên chấp nhận điều này làm câu trả lời – lkraav