gpt4 book ai didi

用于 Websockets 的 Apache SSL 卸载/反向代理。 ( Spring 应用)

转载 作者:太空宇宙 更新时间:2023-11-03 13:36:06 25 4
gpt4 key购买 nike

我有一个在 Tomcat 服务器上运行的 Java Spring 应用程序。我使用 Apache 服务器进行 SSL 卸载。

<VirtualHost *:8043>
ServerName myserver.com
SSLEngine on
SSLCertificateFile "pathtokeystore.crt"
SSLCertificateKeyFile "pathtoserver.key"

ProxyRequests On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPassMatch ^/(MyApp/.*)$ http://App:8080/$1
ProxyPassReverse /MyApp http://App:8080/Home
//not including other stuff below

这有效,我可以在端口 8043 上向 apache 服务器发出 https 请求,并将该请求作为 http 请求转发到 tomcat 服务器。如果我的理解有误,请纠正我,但我相信这就是它的工作原理。

我的应用程序有一个 Websocket 端点。 (我使用 Spring/Stomp/ActiveMQ)。当前端点 url 即:ws://appname:61614。我可以直接连接到 websocket 端点,但这是不安全的,我想将其更改为 wss://appname:61614 并通过 apache 服务器向 wss://myapp:61614 发出请求,它将处理 SSL,然后将它们转发到 ws://app:61614。

是否可以像使用 https 和 http 那样实现这一点?那么我可以有这样的东西吗:

//Loadmodule mod_proxy_wstunnel at the start of httpd conf file

<VirtualHost *:61615>
ServerName myserver.com
SSLEngine on
SSLCertificateFile "pathtokeystore.crt"
SSLCertificateKeyFile "pathtoserver.key"

ProxyPassMatch / ws://app:61614
ProxyPassReverse / ws://app:61614

我是否正确地认为我向 apache 服务器的端口 61615 发出的所有 wss 请求都将转发到我的 tomcat 应用程序的 ws://app:61614?这行得通吗? Apache 能否以这种方式处理 websockets 代理?

最佳答案

ProxyPassMatch 需要对目标进行正则表达式和某种处理。 ProxyPassMatch/ws://app:61614 对我来说看起来很不正确。也匹配结束斜杠。

试着让我们知道:

ProxyPass / ws://app:61614/
ProxyPassReverse / ws://app:61614/

关于用于 Websockets 的 Apache SSL 卸载/反向代理。 ( Spring 应用),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39924392/

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