仅通过虚拟主机上的 nginx 上的域限制访问

仅通过虚拟主机上的 nginx 上的域限制访问

我已经完成了 nginx 虚拟主机的设置,我的配置文件如下

server {
    listen 80;
    server_name domain.com;
    access_log /home/domain.com/prod_webapp/logs/access.domain.com.log;
error_log /home/domain.com/prod_webapp/logs/error.domain.com.log;
    location /static {
            root /home/domain.com/prod_webapp/mocorner/ph/;
    }
location / {
    try_files $uri @uwsgi;
}
location @uwsgi {
        include uwsgi_params;
        uwsgi_pass unix:/tmp/domain_uwsgi.sock; 
}}

在同一台机器上,我有 domain1.com 和 domain2.com,每次访问时我都会获得其内容,这很棒。我的问题是,当我尝试使用 IP 地址访问用户时,我也会获得虚拟主机中的一个网站。

虽然我从站点启用文件夹中禁用了默认设置(删除了符号链接),但仍然没有解决这个问题。

有什么建议么?

答案1

您可以通过创建默认的 Web 服务器配置来处理此类请求,如下所示:

server {
    listen 80 default;
    server_name localhost;
}

该选项自 0.8.21 开始调用default_server。请参阅文档了解详情。

答案2

只需插入捕获所有块并限制对您的 IP 的所有其他请求的访问。

服务器 {
    听 80 默认服务器;
    服务器名称 _;
    返回444;
}

相关内容