无法登录到负载均衡器后面的 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 将如下所示。
或
http://is.50.com/carbon 将重定向到 https。
我在负载均衡器后面的虚拟机上有一个 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 将如下所示。
或
http://is.50.com/carbon 将重定向到 https。