gpt4 book ai didi

apache - 能够将 https 重定向到 http 但无法将 wss 重定向到 ws

转载 作者:行者123 更新时间:2023-12-04 16:13:47 38 4
gpt4 key购买 nike

我正在使用网络套接字。在 apache 中,我可以通过在配置文件中执行以下设置将 https 重定向到 http:

      <VirtualHost *:443>
# Common SSL Config
ServerName ec2-13-52-248-221.us-west-1.compute.amazonaws.com
SSLEngine on
# wss redirects to working ws protocol

SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
ProxyPass "/" "http://ec2-13-52-248-221.us-west-1.compute.amazonaws.com" retry=0 keepalive=On

</VirtualHost>

但相同的配置(如上)我改变如下
     <VirtualHost *:443>
# Common SSL Config
ServerName ec2-13-52-248-221.us-west-1.compute.amazonaws.com
SSLEngine on
# wss redirects to working ws protocol

SSLCertificateFile /etc/ssl/certs/apache-selfsigned.crt
SSLCertificateKeyFile /etc/ssl/private/apache-selfsigned.key
ProxyPass "/wss" "ws://ec2-13-52-248-221.us-west-1.compute.amazonaws.com:8080" retry=0 keepalive=On

</VirtualHost>

我无法从 wss 重定向到 ws

在 Wss 的情况下,我在发送请求时使用以下网址:
    wss://ec2-13-52-248-221.us-west-1.compute.amazonaws.com:8080/wss

最佳答案

经过 24 小时的努力,我终于找到了解决方案:此配置对我有用

首先通过在 windows 中的 httpd.conf 文件中启用此模块来加载以下模块

proxy_wstunnel_module modules/mod_proxy_wstunnel.so

在 linux 中,您可以通过以下命令启用此模块
sudo a2enmod proxy proxy_balancer proxy_wstunnel proxy_http

然后只需将以下行添加到 apache.conf 文件或 httpd-vhosts.conf 文件
RewriteEngine on
ProxyRequests Off
ProxyPreserveHost on
ProxyPass /ws ws://192.168.43.31:8080 retry=0 keepalive=On
ProxyPassReverse /ws ws://192.168.43.31:8080 retry=0

在 Javascript 文件更改是这样的:
if(location.protocol === 'http:'){
var conn = new WebSocket('ws://192.168.43.31/ws');
}
else{
var conn = new WebSocket('wss://192.168.43.31/ws');
}

所以从这个 apache 会将所有具有 ws 的请求重定向回 8080 端口

关于apache - 能够将 https 重定向到 http 但无法将 wss 重定向到 ws,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61431648/

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