【问题标题】:Executing Liferay behing a Nginx reverse proxy作为 Nginx 反向代理执行 Liferay
【发布时间】:2017-09-13 13:56:23
【问题描述】:

我正在尝试测试 Liferay 的最新版本 (Liferay 7.0-ga4) 并将其安装在反向代理 (nginx) 后面。我正在使用 docker 和 docker compose 进行测试,并创建了一个虚拟域 docker.domain.com

如果我直接访问它的 url 并且没有配置反向代理,Liferay 可以正常工作。

另外,如果我使用根位置,我可以成功在 nginx 服务器后面安装 Liferay:

location / {
   proxy_pass http://liferay:8080;
   proxy_set_header X-Forwarded-Server $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-Proto $scheme;
}

proxy_pass 部分中的 liferay 是 docker compose 中链接的 docker 容器的名称。 Liferay 的选择:

web.server.host=docker.domain.com
web.server.protocol=http
web.server.http.port=80

在 Liferay 中配置反向代理。如果我输入http://docker.domain.com/,结果是正确的:

我可以登录,接受条款和条件,......一切似乎都很好。

但是当我使用非 root 的位置(即 /lifeay)时,我通常会遇到链接、图像和 css 的问题。

在 nginx 中的配置类似于:

location /liferay {
   proxy_pass http://liferay:8080;
   proxy_set_header X-Forwarded-Server $host;
   proxy_set_header X-Real-IP $remote_addr;
   proxy_set_header X-Forwarded-Proto $scheme;
}

并按照建议将here 添加到Liferay 的配置中:

portal.proxy.path=/liferay

当访问http://docker.domain.com/liferay 时,所有的 url 都被弄乱了,CSS 也没有显示出来。这里我附上最终结果的截图:

这句话很有趣

http://docker.domain.com/liferay/liferay

“liferay”在网址中出现两次。 liferay 的 tomcat 日志中出现了一些错误:

12:48:29,019 WARN  [http-nio-8080-exec-3][code_jsp:172] {code="404", msg="/liferay/o/mentions-web/css/mentions.css", uri=/liferay/o/mentions-web/css/mentions.css}
12:48:29,021 WARN  [http-nio-8080-exec-8][code_jsp:172] {code="404", msg="/liferay/o/frontend-css-web/main.css", uri=/liferay/o/frontend-css-web/main.css}
 ....

显然有些文件没有找到。我用 docker github 创建了一个简单的示例,如果有人感兴趣,只需花几分钟时间对其进行测试。不过,我很确定我的 Liferay 配置中缺少某些东西,但我无法弄清楚是什么。至少我在官方文档中找不到任何线索。

【问题讨论】:

    标签: nginx liferay liferay-7


    【解决方案1】:

    似乎问题出在 proxy_pass 中的尾部斜杠上。这就是与众不同的地方。在this example之后,nginx配置文件将是:

       location /liferay {
         return 302 /liferay/;
       }
    
       location /liferay/ {
         proxy_pass http://liferay:8080/;
         proxy_set_header X-Forwarded-Server $host;
         proxy_set_header X-Real-IP $remote_addr;
         proxy_set_header X-Forwarded-Proto $scheme;
        }
    

    现在看来 Liferay CSS 和 URL 工作正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-17
      • 2011-10-20
      • 1970-01-01
      • 1970-01-01
      • 2015-01-05
      • 1970-01-01
      • 1970-01-01
      • 2017-08-09
      相关资源
      最近更新 更多