[英]Nginx reverse proxy configuration issue
我已经在数字海洋飞沫的tomcat上部署了一个webapp
war文件的结构为(Servelet是webapp名称)
Servelet
---- WEB-INF/classes/folder/FileXyz.class
现在在我的本地PC上,当我想访问它时,我会执行以下操作:
localhost:8080/Servelet/FileXyz
我在数字海洋上的tomcat上部署了相同的战争,但是这次连接了一个域:server.foodini.co.in
现在我可以使用以下命令访问相同的文件:
server.foodini.co.in:8080/Servelet/FileXyz
这很好。
现在我想在前面有一个Nginx,它会监听80端口并通过反向代理将所有请求转发到tomcat Webapp
我在服务器配置下的/ etc / nginx / sites-available下编辑了默认文件,我添加了:
server_name server.foodini.co.in
root /opt/tomcat/webapps/Servelet
location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://127.0.0.1:8080/;
}
现在当我做
server.foodini.co.in
它将按预期方式打开tomcat默认页面
但
server.foodini.co.in/Servelet/FileXyz
(adding the port 8080 again works)
给出404和其他所有路径相同的404,有人可以指导我吗?
在将请求传递到代理服务器时,您需要设置主机头,否则nginx将使用变量$ proxy_host覆盖主机头,在这种情况下为127.0.0.1:8080
并且您希望它为server.foodini.co.in:8080
。 因此,只需将其添加到location /
块中:
proxy_set_header Host $host:$proxy_port;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.