【问题标题】:Nginx drop when server_name does not matchserver_name 不匹配时 Nginx 丢弃
【发布时间】:2016-07-11 00:39:05
【问题描述】:

我有两个虚拟主机:一个在 domain.tld 端口 80 上,另一个在 sub.domain.tld 端口 443 上并启用了 SSL。我在我的 DNS 服务器上添加了一个 CNAME 条目,将我的 sub 子域重定向到 domain.tld.。 一切都按预期工作,但转到http://sub.domain.tld 与转到http://domain.tld 的作用相同,而https://domain.tldhttps://sub.domain.tld 的作用相同。我怎样才能防止这种情况发生?

我的配置:

server {
    listen *:443;
    listen [::]:443;

    server_name www.sub.domain.tld;

    ssl on;
    ssl_certifiate ...;
    ssl_certifiate_key ...;

    root /var/www/sub.domain.tld;
    ...
}

server {
    listen *:80;
    listen [::]:80;

    server_name www.domain.tld;

    root /var/www/domain.tld;
    ...
}

【问题讨论】:

  • 你试过 server_name sub.domain.tld; (不带 www)
  • 没有www还是一样

标签: http nginx dns subdomain


【解决方案1】:

如果这些是您唯一的 server 块,那么它们也是您事实上的 默认服务器 块,分别用于端口 443 和端口 80。有关详细信息,请参阅this document

如果你不想这样,你需要声明一个默认的server 块。一个极简主义的定义可能是:

server {
    listen 80 default_server;
    listen 443 default_server;
    deny all;
}

【讨论】:

  • 这个配置完全阻塞了服务器
猜你喜欢
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
  • 2021-02-20
  • 2017-05-05
  • 1970-01-01
  • 1970-01-01
  • 2019-10-03
  • 2016-10-21
相关资源
最近更新 更多