【发布时间】: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 配置中缺少某些东西,但我无法弄清楚是什么。至少我在官方文档中找不到任何线索。
【问题讨论】: