MENU

Nginx的空主机头访问保护在多端口绑定下的配置

January 28, 2021 • 折腾

自己的服务器除了搭建现有的几个公开的服务内容之外,还使用以 ZeroTier One 为例的跨区域组网形式,为可信设备提供其他服务内容,这就涉及到 Nginx 在不同 IP 上的绑定。本文记录下配置过程中出现的一项问题。

通常,可以查到的教程中都会告诉你,可以在 nginx.conf 中使用如下配置,来达到屏蔽空主机头的效果。

server {
    listen 80 default_server;
    server_name _;
    return 410;
}

在我的场景下,部分 Host 会绑定一个特定的 IP 和端口,此时会出现,用户依旧可以通过 IP 访问绑定的第一个对应的站点,这是意料之外的结果。

通过测试,上述的屏蔽空主机头的配置代码仅针对于 listen 80 相同的站点,对于其他的(如:listen 10.144.2.1),则需要同样配置一条内容,具体如下:

server {
    listen 10.144.2.1 default_server;
    server_name _;
    return 410;
}

至此,问题解决。

Archives QR Code
QR Code for this page
Tipping QR Code