应无所住,而生其心
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
公网安备:50010702506256
欢迎加群交流技术

使用nginx在同一台服务器上配置多个二级域名2

8548人阅读 2019/6/14 14:24 总访问:4712946 评论:0 收藏:0 手机
分类: 微服务


在第一篇中介绍了一种方法:

http://www.tnblog.net/aojiancc2/article/details/2430


其实还可以使用第二种方法,也就是配置多个server

   server {
        listen       80;
        server_name  m.tnblog.net;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
             proxy_set_header X-Real-IP $remote_addr;

             proxy_set_header Host $http_host;

             proxy_pass http://127.0.0.1:8090;
       }
    }

    server {
        listen       80;
        server_name  wx.tnblog.net;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
             proxy_set_header X-Real-IP $remote_addr;
             proxy_set_header Host $http_host;

             proxy_pass http://127.0.0.1:8095;
       }
    }

效果如下:

当访问m.tnblog.net的时候


当访问wx.tnblog.net的时候

说一下对配置多个server的个人理解:

如果有多个server,nginx会进行匹配,匹配到后就不会进行下面的匹配了


如果没有匹配到就默认执行第一个server的

比如这里:上面我们server_name配置成m.tnblog.net,第二个server_name乱写

这样在访问wx.tnblog的时候,这两个都不会匹配到,他就会请求第一个了,也就是8090端口,也就是tnblog的手机端

当然如果换一个顺序就是执行的8095那个端口了


如果这个推理没有问题,那么按照这个逻辑来说,匹配到就执行匹配不到就默认第一个,那么我们写一个可以直接匹配到的,

比乱写的名字效率会高一些哦。所以这也就是为什么我们要搞得原理,这样我们可以更好的使用,至少能提高执行效率



这里的多个server还可以监听不同的端口:

例如我们监听两个不同的端口:一个是8090,一个是9092

这里的8090会转到两个代理的项目去中,由于8092并没有做代理,所以访问8092就是直接访问的nginx本身



多个https也是一样的,监听多个443端口,然后具体不同的域名转发到不同端口(项目真正使用的端口)即可



欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价