gpt4 book ai didi

Apache配置: Websockets Proxy WSS request to WS backend

转载 作者:行者123 更新时间:2023-12-04 12:50:40 28 4
gpt4 key购买 nike

在此先感谢您的帮助。

我正在尝试将Apache用作使用WSS的Web浏览器和后端WS服务器进程之间的代理。

浏览器<-WSS ---> Apache <-WS ---> RabbitMQ Stomp

我在Apache中正确设置了HTTPS,并通过443提供了页面。

在Apache站点配置中:.../sites-enabled/site.conf

<VirtualHost *:80>
RewriteEngine on

RewriteCond %{SERVER_NAME} =MYSERVER.com [OR]
RewriteCond %{SERVER_NAME} =www.MYSERVER.com
RewriteRule ^ https://%{SERVER_NAME}%{REQUEST_URI} [END,NE,R=permanent]

</VirtualHost>


<VirtualHost *:443>
SSLEngine On
SSLProxyEngine On

SSLCertificateFile /etc/letsencrypt/live/MYSERVER.com/fullchain.pem
SSLCertificateKeyFile /etc/letsencrypt/live/MYSERVER.com/privkey.pem

Redirect /wss /wss/
ProxyPass /wss/ ws://127.0.0.1:15674/stomp/websocket/
ProxyPassReverse /ws/ wss://127.0.0.1:15674/stomp/websocket/

ErrorLog ${APACHE_LOG_DIR}/error.log
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined

ServerName MYSERVER.com
ServerAlias www.MYSERVER.com

</VirtualHost>

浏览器中的Javascript:

<script>
var ws = new WebSocket('wss://MYSERVER.com:443/wss');
var client = Stomp.over(ws);

在Chrome调试器中,我看到:
WebSocket与“wss://MYSERVER.com/wss”的连接失败:WebSocket握手期间出错:意外的响应代码:302

使用直接指向后端的ws,这很好用,但是我需要使wss工作。

我试图获得与此示例类似的解决方案,但无法执行以下操作:
Apache: Proxy websocket wss to ws

最佳答案

如果没有,此行Redirect /wss /wss/会在/wss后面添加一个斜杠(默认情况下,这是302重定向)。您正在尝试连接到wss://MYSERVER.com:443/wss,它说明了重定向。

解决方案:
尝试连接到wss://MYSERVER.com:443/wss/(带斜杠)。现在,这应该可以正常工作。

关于Apache配置: Websockets Proxy WSS request to WS backend,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51622101/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com