我正在尝试测试最后一个版本的Liferay(Liferay 7.0-ga4)并将其安装在反向代理(nginx)之后。我正在使用docker和docker compose进行测试,我创建了一个虚拟域docker.domain.com
。
如果直接访问其URL并且未配置反向代理,Liferay工作正常。
此外,如果我使用根位置,我已成功在LifeL服务器后面安装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
时,所有网址都搞砸了,并且没有显示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配置中缺少某些东西,但我无法弄清楚是什么。至少我无法在官方文档中找到任何线索。
答案 0 :(得分:0)
似乎问题在于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正常工作。