tomcat/Liferay 没有重定向到 https 主题和 Hook

标签 tomcat nginx liferay liferay-6

我已经更改了服务器,因此我从 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/

相关文章:

java - 使用 Ehcache 扩展 Java Web 应用程序

tomcat - 如何在 AWS 实例上设置 SpagoBI

django - 使用 Django-Jython 和 Tomcat 进行部署?

amazon-web-services - 如何在部署应用程序 Elastic beanstalk 上修改 NGINX 配置

c# - 访问路径被拒绝,在 Ubuntu 上运行 Asp.net core 2.0

java - Liferay 6.1 中的缩进注释

javascript - 如何查找和更改 liferay AUI 脚本?

tomcat - 如何给 web 应用程序起一个全世界都可以访问的名字

java - Liferay:通过屏幕名称进行身份验证

nginx - OCI运行时错误docker-compose不是目录