Apache SSL卸载/反向代理Websockets.(Spring应用程序)



我有一个运行在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请求,请求被转发到tomcat服务器作为http请求。如果我的理解有误,请纠正我,但我相信这就是它的工作原理。

我的应用有一个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

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

ProxyPassMatch需要regex和目标的某种处理。ProxyPassMatch/ws://app:61614看起来非常不正确。也匹配结束斜杠。

试着让我们知道:

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

相关内容

  • 没有找到相关文章

最新更新