Apache:转发 wss://sub.domain.com 到 ws://127.0.0.1:6001

问题描述 投票:0回答:0

我正在尝试设置 Apache 2.4(在 Virtualmin 上)以将 wss://sub.domain.com 请求转发到 ws://localhost:6001,但我运气不好。我已经学习了无数教程,浏览了大量 Stackoverflow 问题 - 但我仍然感到困惑。

我安装并启用了 proxy、proxy_http、proxy_wstunnel 和 rewrite。

我第一次尝试:

ServerName sub.domain.com

RewriteEngine on
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*)           ws://127.0.0.1:6001/$1 [P,L]

ProxyPass / http://127.0.0.1:6001/
ProxyPassReverse / http://127.0.0.1:6001/

SSLEngine on
SSLCertificateFile /path/to/cert.pem
SSLCertificateKeyFile /path/to/key.pem
SSLCertificateChainFile /path/to/chain.pem
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite HIGH:!aNULL:!MD5
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"

然后我试了:

ServerName sub.domain.com

RewriteEngine On
RewriteCond %{HTTP:Upgrade} =websocket [NC]
RewriteRule /(.*)           ws://localhost:6001/$1 [P,L]
RewriteCond %{HTTP:Upgrade} !=websocket [NC]
RewriteRule /(.*)           http://localhost:6001/$1 [P,L]

ProxyPreserveHost on
ProxyPass / ws://localhost:6001/
ProxyPassReverse / ws://localhost:6001/

...ssl directives

以及两者的几乎所有组合。

至于 websocket 服务器,我在端口 6001 上使用 Laravel-websockets。

我做错了什么?

apache websocket laravel-websockets
© www.soinside.com 2019 - 2024. All rights reserved.