开发者社区> 问答> 正文

下面问题中tomcat + nginx 配置问题,如何解决?

http://www.oschina.net/code/snippet_12_175
http://www.oschina.net/code/snippet_12_174
参考了OS的配置,但是不得要领,没有配置成功,我的需求是这样的:
有多个web项目在<CATALINA_HOME>/webapps目录下面,其中一个是abc.我想把域名xyz.com指到这个abc项目.
但是我目前配置出来的效果是:
在浏览器访问xyz.com,可以正确定位到abc项目,以及打开首页,但是所有的连接都是xyz.com/abc/*.jsp,因而不能正确访问,因为nginx的配置其实已经带了/abc/.
应该是xyz.com/*.jsp才是正确的
我在项目里是用 pageContext.request.contextPath+"/*.jsp"制作的连接
我目前的配置是:
nginx

server {
  listen 80;
  server_name xyz.com;
  location / {
    proxy_pass http://localhost:8080/abc/;
    proxy_set_header Host $host;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  }
}

tomcat server.xml

<Engine name="Catalina">
    <Host appBase="webapps" autodeploy="false" name="xyz.com" unpackwars="false">
    <Context path="" docBase="abc"  debug="0" reloadable="true" />
   </Host>

</Engine>

求教这个是什么原因,怎么处理,nginx和tomcat的配置怎么搭配?
问题补充:连接中出现的 abc ​xyz.com/abc/*.jsp 是nginx造成的还是tomcat造成的?

展开
收起
落地花开啦 2016-06-02 16:32:35 2343 0
1 条回答
写回答
取消 提交回答
  • 喜欢技术,喜欢努力的人

    最终配置:
    nginx

    server {
      listen 80;
      server_name xyz.com;
      location / {
        proxy_pass http://localhost:8080;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
      }
    }

    tomcat server.xml

    <Engine name="Catalina">
        <Host appBase="" autodeploy="false" name="xyz.com" unpackwars="false">
        <Context path="" docBase="<CATALINA_HOME>/webapps/abc"  debug="0" reloadable="true" />
       </Host>
    
    </Engine>
    2019-07-17 19:25:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
《Nginx 代理系统常用手册》 立即下载
CentOS Nginx PHP JAVA 多语言镜像使用手 立即下载
CentOS Nginx PHP JAVA多语言镜像使用手册 立即下载