无法登录到负载均衡器后面的 WSO2 Carbon

Can't log into WSO2 Carbon behind load balancer

我在负载均衡器后面的虚拟机上有一个 WSO2IS 5.0.0 实例 运行。负载均衡器在端口 443 上侦听 HTTPS,处理所有 SSL 并将纯 HTTP 转发到端口 80 上的 VM。

我已将 WSO2IS 实例配置为在 catalina-server.xml 的端口 80 上只有一个 HTTP 连接器,并配置了我在配置中可以找到的所有 URLs 以指向负载使用 HTTPS 的平衡器。

我可以通过 443 上的负载均衡器访问 carbon webapp 正常。但是,当我成功登录时,webapp returns 重定向到端口 80 上的 HTTP,而不是应该重定向到端口 443 上的 HTTPS。这使得无法使用 carbon webapp。

如果我在 catalina-server.xml 中更改 HTTP 连接器中的代理端口,它会 return 重定向到端口 443 - 但 URL 是纯 HTTP,而不是 HTTPS,所以它仍然失败。

即使 tomcat 本身正在通过 HTTP 侦听,我如何告诉 carbon 发送重定向到 HTTPS?

提前致谢!

您可以在这种情况下使用代理端口。

您可以在 tomcat/catalina-server.xml 中配置 2 个连接器,如下所示。 http url 无论如何都会重定向到 https url。您是指管理控制台作为 webapp 吗?

 <Connector  protocol="org.apache.coyote.http11.Http11NioProtocol"
                port="9763"
                proxyPort="80"
                bindOnInit="false"
                maxHttpHeaderSize="8192"
                acceptorThreadCount="2"
                maxThreads="250"
                minSpareThreads="50"
                disableUploadTimeout="false"
                connectionUploadTimeout="120000"
                maxKeepAliveRequests="200"
                acceptCount="200"
                server="WSO2 Carbon Server"
                compression="on"
                compressionMinSize="2048"
                noCompressionUserAgents="gozilla, traviata"
                compressableMimeType="text/html,text/javascript,application/x-javascript,application/javascript,application/xml,text/css,application/xslt+xml,text/xsl,image/gif,image/jpg,image/jpeg" 
                URIEncoding="UTF-8"/>

    <Connector  protocol="org.apache.coyote.http11.Http11NioProtocol"
                port="9443"
                proxyPort="443"
                bindOnInit="false"
                sslProtocol="TLS"
                maxHttpHeaderSize="8192"
                acceptorThreadCount="2"
                maxThreads="250"
                minSpareThreads="50"
                disableUploadTimeout="false"
                enableLookups="false"
                connectionUploadTimeout="120000"
                maxKeepAliveRequests="200"
                acceptCount="200"
                server="WSO2 Carbon Server"
                clientAuth="false"
                compression="on"
                scheme="https"
                secure="true"
                SSLEnabled="true"
                compressionMinSize="2048"
                noCompressionUserAgents="gozilla, traviata"
                compressableMimeType="text/html,text/javascript,application/x-javascript,application/javascript,application/xml,text/css,application/xslt+xml,text/xsl,image/gif,image/jpg,image/jpeg"
                URIEncoding="UTF-8"/>

您应该在 etc/hosts 文件中将负载均衡器映射为:

是。50.com

在您的负载均衡器中,您应该如下所示。例如,apache2

<Virtualhost *:443>
        ServerName is.50.com
        ServerAlias is.50.com
        ProxyPreserveHost On
        SSLEngine On
        SSLProxyEngine On
        SSLProxyVerify none
        SSLProxyCheckPeerCN off
        SSLProxyCheckPeerName off
        SSLCertificateFile /etc/apache2/ssl/apache.crt
        SSLCertificateKeyFile /etc/apache2/ssl/apache.key

 <Proxy *>
       Order deny,allow
       Allow from all
 </Proxy>

stickysession=JSESSIONID


ProxyPass / https://<carbonIP>:<port>/
ProxyPassReverse / https://<carbonIP>:<port>/

</Virtualhost>

那么您的访问 URL 将如下所示。

https://is.50.com/carbon

http://is.50.com/carbon 将重定向到 https。