使用 apache Web 服务器代理来 apache tomcat



根据 apaches 文档,wstunnel 是在 2.4 中添加的,我应该能够路由流量。

我有以下设置

Apache tomcat 在 8081 和 8444 上运行。

有静态文件(html/js(以及groovy/grails(war(文件从Tomcat提供

我已经代理了8081 <- 808444 <- 443

这意味着我可以去http://domain/app看看我必须去http://domain:8081/app看看什么。[这工作正常]

但是,在静态javascript/html页面中,有一个使用websocket回到tomcat的连接。我的应用尝试连接回名为 inf 的应用,但失败。

此代理/连接失败。

我在日志中看到httpd(apache(无法找到正确的协议/inf/stomp/getInfo这是后端websocket的url

我试图遵循这篇文章笔记以及这篇文章中提到的正确顺序

httpd.conf

Listen 443
ServerName mydomain
<VirtualHost *:443>
<Proxy *>
      Order deny,allow
      Allow from all
</Proxy>
SSLEngine On
SSLProxyEngine On
SSLCertificateFile /etc/httpd/ssl/ssl.crt
SSLCertificateKeyFile /etc/httpd/ssl/ssl.key
RequestHeader set Front-End-Https "On"
SSLProxyEngine on
SSLProxyVerify none 
SSLProxyCheckPeerCN off
SSLProxyCheckPeerName off
SSLProxyCheckPeerExpire off
LogLevel debug

ProxyPass /mainView https://mydomain:8443/mainView
ProxyPassReverse /mainView https://mydomain:8443/mainView
ProxyPass /cas https://mydomain:8443/cas
ProxyPassReverse /cas https://mydomain:8443/cas
# <not working as it should>
ProxyPass /inf/ ws://mydomain:8081/inf/
ProxyPassReverse /inf/ ws://mydomain:8081/inf/
# </not working as it should>
ProxyPass /inf/ wss://mydomain:8444/inf/
ProxyPassReverse /inf/ wss://mydomain:8444/inf/

ProxyPass /inf-app https://mydomain:8444/
ProxyPassReverse /inf-app  https://mydomain:8444/
</VirtualHost>

您是否意识到您有两个:ProxyPass/inf/ 块,如果您同时拥有安全和不安全的虚拟主机,则需要将 ws: 版本移动到端口 80 虚拟主机。还有一个重复的SSLProxyEngine

要解决您的问题,请参阅:使用 apache 建立安全 websocket 连接的隧道,特别是:--enable-proxy_wstunnel=共享文本

相关内容

  • 没有找到相关文章

最新更新