我正在尝试测试Liferay的最新版本(Liferay 7.0-ga4),并将其安装在反向代理(nginx)后面。我使用docker和docker compose进行测试,并创建一个虚拟域docker。领域com
。
如果我直接访问Liferay的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部分中的扩展名
是在docker comment中链接的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;
}
并在Liferay的配置中添加如下建议:
portal.proxy.path=/liferay
访问http://docker.domain.com/liferay
所有url都被弄乱了,CSS也没有显示出来。这里我附上最终结果的截图:
这句台词很有趣
http://docker.domain.com/liferay/liferay
其中“liferay”在url中出现两次。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配置中缺少了一些东西,但我不知道是什么。至少我在官方文件中找不到任何线索。
问题似乎出在proxy_pass中的尾部斜杠上。这才是与众不同的地方。在本例中,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正在正常工作。
Nginx的配置文件如下: server { listen 80; #此处应该配置你的域名: server_name doc.iminho.me; charset utf-8; #此处配置你的访问日志,请手动创建该目录: access_log /var/log/nginx/webhook.iminho.me/access.log
主要内容:1. 代理服务器介绍,2. 将请求传递给代理的服务器,3. 传递请求标头,4. 配置缓冲区,5. 选择传出IP地址本文介绍代理服务器的基本配置。 您将学习如何通过不同协议将NGINX请求传递给代理的服务器,修改发送到代理服务器的客户端请求标头,以及配置来自代理服务器的响应缓冲。 代理服务器的基本配置目录 代理服务器介绍 将请求传递给代理的服务器 传递请求标头 配置缓冲区 选择传出IP地址 1. 代理服务器介绍 代理通常用于在多个服务器之间分配负载,无缝地显示来自不同网站的内容,或者通过
Nginx 是一个高性能的 HTTP 和反向代理服务器,代码完全用 C 实现,基于它的高性能以及诸多优点,我们可以把它设置为 hyperf 的前置服务器,实现负载均衡或 HTTPS 前置服务器等。 配置 Http 代理 # 至少需要一个 Hyperf 节点,多个配置多行 upstream hyperf { # Hyperf HTTP Server 的 IP 及 端口 server
本文向大家介绍nginx正向代理与反向代理详解,包括了nginx正向代理与反向代理详解的使用技巧和注意事项,需要的朋友参考一下 正向代理 就是假设有一个内网 内网有两台机器,这两台机器只有 a 可以上网 b 不能上网,但是 a 和 b 通过网络相连接 这时如果 b 想访问外网,就可以通过 a 来正向代理访问外网 正向代理就是在内网中模拟目标服务器,把内网中其它机器的请求 转发给外网中的真正的目标服
我所代理的服务器不返回位置标头,这意味着我的不返回任何东西。 我想记录我的上游请求,这样我就可以在日志中看到我向上游服务器发出的请求。 我想知道是否有一种简单的方法可以在不创建lua脚本的情况下记录Nginx发出的出站请求,或者lua脚本是最好的方法,有人可以在我的搜索中提供方向吗?
本小节,我们继续学习 Nginx 在 七层反向代理中的其它几种比较常见的情况,比如 web 服务中的 WebSocket 协议的反向代理和 uwsgi 协议的反向代理。 1. WebSocket的反向代理 WebSocket 是目前比较成熟的技术了, WebSocket 协议为创建客户端和服务器端需要实时双向通讯的 webapp 提供了一个选择。服务器可以向浏览器推送相关消息,这样在前端实现的某个