关于tomcat设置不需要项目名称来访问,且通过nginx来实现反向代理

前言:作为一个懒人,不喜欢写博客,但是越来越发现,自己之前踩过的坑,现在重复在踩,每次碰到都是感觉之前遇到过,但是就是忘记当时是怎么解决了,现在不得不强迫自己纪录一下。

背景:在自己搭建的springboot项目中,需要自己在测试环境搭建一套服务,申请了几台机器后,自己安装了java环境和tomcat环境之后,把springboot打成war包后扔到tomcat里的webapp目录中,启动发现报错,一直说addchild报错,刚开始一直以为是tomcat有问题,重新下载了一个还是报错,排出。然后跟踪到项目目录中的lib里发现springboot内嵌tomcat的版本微8.0,而自己下载的tomcat为7.0,原来是上次同事讲springboot的版本升级了,导致springboot内嵌的tomcat也跟着升级了,需要在pom.xml中配置一下


1.8

3.3.1
1.2.4
3.3.6
4.1.1
7.0.64
1.3.2
5.5.1
3.0-SNAPSHOT

修改完毕重新部署ok。

然后呢 因为我们线上是只要访问域名,同时我们的前端采用react来写的,前端配置访问我们后端接口的地址是127.0.0.1:7001.且让用户访问只要需要访问ip就可以访问。

实现方法:
修改tomcat中conf下server.xml,在conf同一目录下创建deploy目录存放项目war包,一定要这样处理,简单的放在webapp下不可以,目录地址:/usr/local/apache-tomcat-7.0.68/deploy ,如下:

unpackWARs="true" autoDeploy="true">

   

    

    

    
    

  

tomcat端口修改为了7001,这样启动,访问ip:7001就可以进入项目中了,

现在再设置nginx反向代理:

线上nginx目录为:/usr/local/nginx
修改conf目录下

server {

    listen              80;

    server_name         www.taobao.com;

    set $eaddr $remote_addr;
    if ($http_x_forwarded_for != "") {
           set $eaddr $http_x_forwarded_for;
    }
    if ($http_x_real_ip != "") {
           set $eaddr $http_x_real_ip;
    }

    location / {
        proxy_pass   http://127.0.0.1:7001;
    }

然后再直接访问 ip,就可以直接跳转到项目中了。

你可能感兴趣的:(关于tomcat设置不需要项目名称来访问,且通过nginx来实现反向代理)