![仅通过虚拟主机上的 nginx 上的域限制访问](https://linux22.com/image/588150/%E4%BB%85%E9%80%9A%E8%BF%87%E8%99%9A%E6%8B%9F%E4%B8%BB%E6%9C%BA%E4%B8%8A%E7%9A%84%20nginx%20%E4%B8%8A%E7%9A%84%E5%9F%9F%E9%99%90%E5%88%B6%E8%AE%BF%E9%97%AE.png)
我已经完成了 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; }