映射80端口如何使用nginx配置两个tomcat?

发布于 2022-01-05 02:26:06 字数 2116 浏览 868 评论 11

        服务器是Windows ,已映射80端口,现有两个tomcat实例,例如实例A端口为8081,实例B端口为8082,需要共用80端口;假设本地地址localhost为 192.16.10.10;

    该如何配置 nginx.conf?

    现我 nginx.conf 配置如下:

http{

        .........

    server{

        listen      80;

        server_name    192.16.10.10:8081;

        location / {

            proxy_pass http://localhost:8081

        }

      }

      server{

            listen      80;

            server_name      www.acdf.com;

            location / {

                    proxy_pass http://localhost:8082

        }

     }

}

    我的疑问

    1.需要两个tomcat实例共用 80 端口,是不是 监听  listen  都为 80 ?

    2.nginx 是怎样根据请求地址 来正则匹配 到不同的 虚拟主机的?我的理解是申请两个域名 都绑定到我映射的同一 ip,然后在不同的 server{} 中的 server_name 填入两个域名,通过域名匹配再转到本地的     http://localhost:8081 

    3.就是 server_name  ,这个到底是什么意思,该怎么填写?网上有说填 localhost 的,也有 像我第一种配置直接写ip:port   192.16.10.10:8081 的。如果是这种ip:port 方式的话,我的前端请求地址该如何写,是直接写我映射的地址  http://192.16.10.10   还是  http://192.16.10.10:8081  ? 但是这样写的话,我监听的 80 端口还有作用吗? 我的 server_name 又该怎样写?


请各位大神们不惜赐教。。


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(11

能否归途做我良人 2022-01-08 03:04:56

reuse port

谢绝鈎搭 2022-01-08 03:02:34

引用来自“车开源”的评论

用域名不是很好解决吗?

server{

            listen      80;

            server_name      www.a.com;

            location / {

                    proxy_pass http://localhost:8080

        }

     }

server{

            listen      80;

            server_name      www.b.com;

            location / {

                    proxy_pass http://localhost:8082

        }

     }

清欢 2022-01-08 03:01:41

刚刚才发现按我那样的配置其实是可以外网访问的,但还是不懂 listen 与 server_name 的含义,谢谢大神了

掩饰不了的爱 2022-01-08 02:57:51

    server {

       

      listen       443 ssl;

      server_name  xxx.xxx.com;

      ssl_certificate      zsserver.crt;

      ssl_certificate_key  zsserver.key;

      ssl_session_cache    shared:SSL:1m;

      ssl_session_timeout  5m;

      ssl_ciphers  HIGH:!aNULL:!MD5;

      ssl_prefer_server_ciphers  on;

      location / {

            proxy_pass  http://localhost:8085;

      }

   }

好了,加到那个server下面

筱武穆 2022-01-08 02:50:30

引用来自“geminiblue”的评论

upstream java {
   server 127.0.0.1:8080;
   server 127.0.0.1:8082;
}
server {
   listen 80;
   server_name 127.0.0.1;
   location / {
      proxy_pass http://java;
   }
}

这叫最简单的负载均衡,连权重都不用配置。。。

秉烛思 2022-01-08 02:50:20

这不就是基于域名的虚拟主机么?

柳若烟 2022-01-08 02:45:51

server_name 基于域名即可

累赘 2022-01-08 02:39:53

简单粗暴。 如果要根据访问的路径跳转的话。 可以考虑使用正则。

月亮是我掰弯的 2022-01-08 02:36:55

大神,我已有微信在 80 端口,手机 app 的tomcat 端口 是8085, 如何配置 将 app 也开放到 80 端口?

画骨成沙 2022-01-08 01:19:34
upstream java {
   server 127.0.0.1:8080;
   server 127.0.0.1:8082;
}
server {
   listen 80;
   server_name 127.0.0.1;
   location / {
      proxy_pass http://java;
   }
}

这叫最简单的负载均衡,连权重都不用配置。。。

猫性小仙女 2022-01-06 20:36:00

用域名不是很好解决吗?

server{

            listen      80;

            server_name      www.a.com;

            location / {

                    proxy_pass http://localhost:8080

        }

     }

server{

            listen      80;

            server_name      www.b.com;

            location / {

                    proxy_pass http://localhost:8082

        }

     }

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文