首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache : WSS套接字代理WSS向WS后端的请求

Apache : WSS套接字代理WSS向WS后端的请求
EN

Stack Overflow用户
提问于 2018-07-31 21:08:15
回答 1查看 2.8K关注 0票数 9

提前感谢您的帮助。

我试图使用Apache作为使用WSS的web浏览器和后端WS服务器进程之间的代理。

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

我已经在Apache中正确地设置了HTTPS,并通过443为页面提供服务。

在Apache站点配置中:./ site -启用/site.conf

代码语言:javascript
复制
<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:

代码语言:javascript
复制
<script>
  var ws = new WebSocket('wss://MYSERVER.com:443/wss');
  var client = Stomp.over(ws);

在Chrome调试器中,我看到:到'wss://MYSERVER.com/wss‘的WebSocket连接失败: WebSocket握手中的错误:意外响应代码: 302

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

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

EN

回答 1

Stack Overflow用户

发布于 2018-08-04 17:00:03

这一行Redirect /wss /wss/在不存在的情况下向/wss添加了一个尾随斜杠(默认情况下,它是302重定向)。你试图连接到wss://MYSERVER.com:443/wss,这解释了重定向的原因。

解决方案:尝试连接到wss://MYSERVER.com:443/wss/ (使用尾斜杠)。这一点现在应该如预期的那样起作用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51622101

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档