nginx 怎么绑定新域名?
本文介绍了nginx 怎么绑定新域名?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
这么写后,解析到服务器的所有域名全部跳到https://www.bbxinwen.com,感觉server_name绑定的域名无效?
(删除了目录下默认的default.conf)
server {
listen 80;
server_name www.bbxinwen.com;
return 301 https://www.bbxinwen.com$request_uri;
}
server {
listen 443 ssl;
server_name www.bbxinwen.com;
……
}
解决方案
对于nginx,每个listen ip:port;
作为一个socket
如果一个socket没有默认配置,那会按配置文件的顺序把第一个作为默认配置,没有匹配到的域名,会在这个server {}
block处理。
举个例子
server {
listen 80;
server_name a.com;
}
server {
listen 80;
server_name b.com;
}
假如80没有其他配置,那如果用 c.com
, d.com
, e.com
等等没有在server_name里配置的域名访问80端口,都会匹配到a.com
nginx有两个配置可以覆盖这种情况
server_name _;
listen port default_server;
server_name 配置为 _ 表示匹配所有非匹配域名,比如上方的情况,如果加上一个配置
server _;
,那都会匹配到这个server blocklisten后面加上default_server,作用基本是一样的,不过作用域是该socket
通常1和2会同时使用。
所以,对于楼主的情况,这是正常现象
如果不想让非www.bbxinwen.com
的域名不跳转到https
那应该加一个
server {
listen 80 default_server;
server_name _;
}
后面加上其他逻辑,比如直接返回404。
这篇关于nginx 怎么绑定新域名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文