Tomcat Nginx反向代理配置问题

Tomcat Nginx反向代理配置问题,tomcat,nginx,Tomcat,Nginx,我已经在tomcat上的数字海洋水滴上部署了一个webapp war文件的结构是(Servelet是webapp名称) 现在,在我的本地pc上,当我想访问此文件时,我会: localhost:8080/Servelet/FileXyz 我在digital ocean上的tomcat上部署了相同的war,但这一次连接了一个域:server.foodini.co.in 现在,我可以通过以下方式访问相同的文件: server.foodini.co.in:8080/Servelet/FileXyz

我已经在tomcat上的数字海洋水滴上部署了一个webapp

war文件的结构是(Servelet是webapp名称)

现在,在我的本地pc上,当我想访问此文件时,我会:

localhost:8080/Servelet/FileXyz
我在digital ocean上的tomcat上部署了相同的war,但这一次连接了一个域: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默认页面

但是


给出了一个404和所有其他路径相同的404,请有人指导我

将请求传递到代理服务器时,需要设置主机头,否则nginx将使用变量覆盖主机头,在本例中,变量为
127.0.0.1:8080
,您希望它为
server.foodini.co.in:8080
。因此,只需将其添加到
位置/
块:

proxy_set_header Host $host:$proxy_port;

太好了,是的,就是这样。。。被困了一整天,你救了我。。。谢谢你知道我怎么才能阻止默认的server.foodini.co.in显示tomcat页面吗?你是说root/?Yea root index.jsp上的默认tomcat页面。。。。这个tomcat只是后端访问层。。。没有gui组件。。。。有没有办法将索引重定向到另一个域?您可以在nginx
location=/
location=/index.jsp
等上进行精确匹配,然后进行重定向,
server.foodini.co.in/Servelet/FileXyz

(adding the port 8080 again works)
proxy_set_header Host $host:$proxy_port;