我已经更改了服务器,因此我从 nginx 指向 newipserver:8080
问题是 Liferay 主题和 Hook 的所有相关链接都指向 http
而不是 https
并且主题不工作。我已将 server.xml
中的此配置更改为 ,但不起作用。
<Connector
URIEncoding="UTF-8"
connectionTimeout="20000"
proxyPort="80"
proxyName="www.domain1.com"
port="8080"
protocol="HTTP/1.1"
redirectPort="443"
maxHttpHeaderSize="99999"
enableLookups="false" />
<Connector
port="443"
protocol="HTTP/1.1"
enableLookups="false"
redirectPort="8443" />
非常感谢。
最佳答案
您的困境在以下博文中有所描述:
https://www.liferay.com/web/kamesh.sampath/blog/-/blogs/nginx-ssl-load-balancing-with-liferay
总而言之,SSL 在 NGINX 处终止,而 NGINX 并未将请求最初是 HTTPS 传送到应用程序服务器;相反,它告诉应用程序服务器这是一个 HTTP 请求。
由于应用服务器被告知这是一个 HTTP 请求,它会告诉 Liferay 同样的事情。因此,假定所有请求都是 HTTP 而不是 HTTPS,并且由于 Liferay 不生成协议(protocol)相关的 URL,您会遇到您所描述的问题。
如博文中所述,假设您不需要直接访问应用服务器(您愿意让所有请求通过 NGINX 到达它),您可以设置 secure
属性为 true
如 Tomcat 文档中所述,在您的连接器上。
https://tomcat.apache.org/tomcat-7.0-doc/config/http.html#Common_Attributes
如果您确实需要直接访问服务器,则需要在 secure
所在的不同端口上添加另一个连接器。标志是 false
.
关于tomcat/Liferay 没有重定向到 https 主题和 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35544484/