详解nginx同⼀端⼝监听多个域名和同时监听http与https 详解nginx同⼀端⼝监听多个域名和同时监听http与https
1、同⼀端⼝监听多个域名
如今公⽹ip资源越来越珍贵,多域名监听应⽤⾮常⼴泛,就是⽤⼀个端⼝,⽐如80或者443,监听多个⼊⼝域名。如下:
server {
listen 443 ssl;
server_;
nginx ssl证书配置
ssl_certificate    ssl/server.pem;
ssl_certificate_key ssl/server.key;
......
}
在启⽤新的域名的时候,只需要另启⼀个server配置⽂件,丢在vhosts⽬录下即可,不会报端⼝被占,这个维护nginx的⼤部分⼈都知道。但是,这⾥有个地⽅要注意:不能跨nginx实例。很多同事习惯在同⼀虚机或者云主机下安装多个nginx实例,如果你在实例1⾥⾯⽤了某个端⼝,再在实例2⾥⾯⽤这个端⼝绑不同域名,那对不起了,报错妥妥的出来:
nginx: [emerg] bind() to 0.0.0.0:xxxx failed (98: Address already in use)
nginx: [emerg] still could not bind()
个⼈建议:不在同⼀台虚机或者云主机下安装多个nginx实例,
2、http和https同时监听
这种需求还是挺多的,有时候我们的证书需要安装在A10或者F5这类硬负载均衡上,此时,DMZ区的服务器不需要安装证书,只需要监听http端⼝即可。但与此同时,内⽹dns直接将A地址指到了服务器,此时⼜需要在服务器上安装证书。这种场景,就需要服务器同时对http和https端⼝进⾏监听,监听https⼝是为了解析内⽹https域名,监听http⼝是为了反向代理从DMZ 区过来的http请求。如此,可实现内外⽹https域名统⼀。
配置如下:
server {
listen    8080;
listen    443 ssl;
server_;;
ssl_certificate  ssl/server.pem;
ssl_certificate_key ssl/server.key;
......
}
感谢阅读,希望能帮助到⼤家,谢谢⼤家对本站的⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。