只能通过虚拟主机上的nginx域来限制访问

我已经完成了为虚拟主机设置nginx,这是我的configuration文件的样子

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地址的用户,我也得到了虚拟主机的网站之一..

虽然我禁用默认(删除符号链接)从网站启用文件夹,但仍然没有解决它对我来说。

有什么build议么?

您可以通过创build如下的默认web服务器configuration来处理这样的请求:

 server { listen 80 default; server_name localhost; } 

这个选项自0.8.21起被称为default_server 。 详细信息请参阅文档 。

只需插入一个catch全部块,并限制访问您的IP的每个其他请求。

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