nginx 怎么绑定新域名?

查看:70
本文介绍了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有两个配置可以覆盖这种情况

  1. server_name _;

  2. listen port default_server;

  3. server_name 配置为 _ 表示匹配所有非匹配域名,比如上方的情况,如果加上一个配置server _;,那都会匹配到这个server block

  4. listen后面加上default_server,作用基本是一样的,不过作用域是该socket

通常1和2会同时使用。

所以,对于楼主的情况,这是正常现象
如果不想让非www.bbxinwen.com的域名不跳转到https
那应该加一个

server {
    listen 80 default_server;
    server_name _;
}

后面加上其他逻辑,比如直接返回404。

这篇关于nginx 怎么绑定新域名?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆