![](/img/article/atype.png)
在第一篇中介绍了一种方法:
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
评价