nginx通过url访问本机不同tomcat

如何通过nginx来访问本机开放的不同端口的tomcat,
比如本机有六个tomcat

分别为
tomcat1 8080
tomcat2 8081
tomcat3 8082
tomcat4 8083
tomcat5 8084
tomcat6 8085

然后服务器新部署nginx服务,让所有的服务都能通过nginx的80来访问
比如http://192.168.102.100/tomcat1 访问tomcat1下面的项目
http://192.168.102.100/tomcat2 访问tomcat2下面的项目
http://192.168.102.100/tomcat3 访问tomcat3下面的项目
http://192.168.102.100/tomcat4 访问tomcat4下面的项目

阅读 4.8k
3 个回答

通过配置文件反向代理即可,在nginx.conf中增加如下location,并将localhost改为需要的ip。

server {
    location /tomcat1 {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8081;
    }
    location /tomcat2 {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8082;
    }
    location /tomcat3 {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8083;
    }
}

//把nginx默认的配置文件备份下,改改就可以了。
server {
        #这是你要代理到的80端口
        listen    80;
        #这是访问的域名
        server_name  http://localhost;

        root html;

        access_log  logs/nginx.access.log  main;
        
        #然后下面才是你要代理的几个tomcat
 
        #默认请求
        location / {
            index index.php index.html index.htm;  
        }
        location /tomcat1 {

        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8081;
    }
    location /tomcat2 {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8082;
    }
    location /tomcat3 {
        proxy_set_header X-Real-IP $remote_addr;
        proxy_pass http://localhost:8083;
    }
    #其他配置略
}
新手上路,请多包涵

为什么我访问的结果是404;直接访问tomcat是可以的

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题