Nginx + Tomcat 虚拟主机

Nginx + Tomcat 虚拟主机

我需要将 Nginx 配置为 Tomcat 的反向代理。问题是,当我尝试通过子域 (myapp.domain.com) 访问 Web 应用程序时,在这种情况下显示的是 Tomcat webapps 根目录,而不是 myapp。

Nginx 配置

server {
    listen 80;

    root /usr/share/tomcat/webapps/myapp;
    index index.php index.html index.htm;

    access_log off;

    server_name myapp.domain.com;

    location / {
      proxy_set_header X-Real-IP $remote_addr;
      proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      proxy_set_header Host $host;
      proxy_pass http://127.0.0.1:8181;
    }
}

我尝试在 Tomcat 的 server.xml 中的 Host 标签内添加此行:

<Context path="" docBase="myapp" debug="0" reloadable="true" />

但这样,myapp 就成了默认的,并且“总是”加载,即使尝试访问 webapps 根目录

答案1

如果我正确理解了您的问题,您需要考虑 Tomcat 如何解释“Host”标头,为此配置虚拟主机(请参阅https://tomcat.apache.org/tomcat-6.0-doc/virtual-hosting-howto.html)。

或者,在 server.xml 中不要有 Context 标签,并将 proxy_pass 更改为:

代理密码http://127.0.0.1:8181/myapp

相关内容