仅允许从IP地址访问Nginx

时间:2019-05-17 07:34:43

标签: nginx

我有一个域,例如在IP XXX.XXX.XXX.XXX上注册的www.domain.com,我的网站在端口80上运行。 我想知道是否有办法阻止用户访问www.domain.com,强迫用户仅使用IP地址进入网站。

是否可以使用nginx设置类似的内容?

无论如何,我使用Ubuntu作为服务器,并且操作系统上用于解决此问题的任何配置也将受到赞赏。

非常感谢您。

更新:

由于@mettalic,配置现在看起来像这样:

server {
   listen 80;
   server_name _;
   return 403;

}
server {
    listen 80;
    server_name XXXX;
    add_header 'Access-Control-Allow-Origin' "http://XXX";
    add_header x-frame-options "DENY" always;


location /api {
    proxy_pass http://localhost:5000;
}

location / {
    add_header 'Access-Control-Allow-Origin' "http://XXXX";
    root /usr/share/nginx/html/dist;
    index index.html;
    try_files $uri $uri/ /index.html;
}
}

它可以正常工作。

2 个答案:

答案 0 :(得分:1)

如果该服务器的端口80上只有一个主机,则可以创建不带server name的nginx配置文件。只是listen XXX.XXX.XXX.XXX:80;

UPD:

您可以尝试添加服务器,该服务器将对所有尝试通过域访问您站点的用户返回错误:

server { 
    listen 80; 
    server_name _; 
    return 403; 
} 

或将它们重定向到ip:

server { 
    listen 80; 
    server_name _; 
    return 301 http://XXX.XXX.XXX.XXX; 
}

答案 1 :(得分:0)

在主机的配置块中设置server_name 192.168.19.24;。 在Ubuntu上,默认的虚拟主机位于/etc/nginx/sites-available/default中,但在其他发行版中可能有所不同。