`
isno
  • 浏览: 15285 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

设置nginx禁止通过IP访问服务器

阅读更多
今天要在Nginx上设置禁止通过IP访问服务器,只能通过域名访问,这样做是为了避免别人把未备案的域名解析到自己的服务器IP而导致服务器被断网,从 网络上搜到以下解决方案:
==============================
nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效

最关键的一点是,在server的设置里面添加这一行:
listen       80 default;
后面的default参数表示这个是默认虚拟主机。

这个设置非常有用。
比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.
目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦。就可以这样设置:
server {
listen       80 default;
return 500;
}

也可以把这些流量收集起来,导入到自己的网站,只要做以下跳转设置就可以:
server {
listen       80 default;
rewrite ^(.*) http://www.mydomain.com permanent;
}
==============================

按照如上设置后,确实不能通过IP访问服务器了,但是在应该用中出现当server_name后跟多个域名时,其中一个域名怎么都无法访问:

设置如下:
server
{
listen       80;
server_name www.abc.com  abc.com
没更改之前,通过server_name 中的www.abc.com  abc.com均可访问服务器,加入禁止IP访问的设置后,通过abc.com无法访问服务器了,www.abc.com可以访问

用 nginx -t 检测配置文件会提示warning:

[warn]: conflicting server name “abc.com” on 0.0.0.0:80, ignored
the configuration file /usr/local/webserver/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/webserver/nginx/conf/nginx.conf test is successful

最后通过在listen 80 default;后再加server_name _;解决,形式如下:

#禁止IP访问
server
{
listen 80 default;
server_name _;
return 500;
}

这样,通过abc.com就能访问服务器了,问题解决了,但具体原因还是不清楚。
分享到:
评论

相关推荐

    nginx禁止某个IP访问站点的设置方法

    首先建立下面的配置文件放在nginx的conf目录下面,... blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问: deny IP; allow IP; # block all ips deny all; # allow all ips allow all; 其中网段的

    Nginx 禁止IP访问 只允许域名访问

    以下是一些关于如何通过Nginx配置来实现禁止IP访问、只允许域名访问的具体知识点。 首先,Nginx的监听指令listen用于指定监听的端口,同时也可以指定监听的IP地址。当用于指定IP地址时,可通过default或default_...

    Web应用安全:Nginx禁止目录列出配置.pptx

    目录遍历攻击是一种常见的Web安全威胁,攻击者尝试通过在URL中添加特定的路径或文件名,如"../"或"/*53.pdf",来访问服务器上原本不应该公开的目录和文件。这种攻击可能导致数据泄露、服务中断甚至完全控制服务器。...

    nginx 限制ip、并发量、连接数等配置

    在Nginx配置文件(通常是`/etc/nginx/nginx.conf`或`/usr/local/nginx/conf/nginx.conf`)中,可以使用`allow`和`deny`指令来允许或禁止特定IP或IP段的访问。以下是一个示例: ```nginx server { listen 80; ...

    Nginx 禁止IP访问如何实现

    在配置Nginx禁止IP访问时,也有可能遇到某些技术限制或错误,这可能是由于配置文件中的语法错误或者其他配置不当导致的。此时,使用nginx -t命令来测试配置文件的正确性是一个好习惯,它可以检查配置文件是否有语法...

    Nginx限制IP访问某些页面的操作

    总之,Nginx通过灵活的`location`指令和条件判断,可以实现精细的IP访问控制。这不仅有助于提升网站安全性,还可以防止恶意攻击或滥用。在实际操作中,应根据具体需求调整配置,并注意定期审查和更新这些规则。

    禁止IP访问网站的多种方法分享(linux,php,nginx,apache)

    在Apache服务器中,可以通过修改`httpd.conf`配置文件来禁止特定IP访问。使用`<Location>`指令和`Order`、`Deny`、`Allow`规则,可以设置允许和拒绝的策略。例如,以下配置将拒绝直接通过IP `221.*.*.*` 访问,但...

    Nginx中禁止使用IP访问网站的配置实例

    国内因为备案的原因,所有服务器都要禁止使用IP访问网站。否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了。这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟...

    nginx禁止直接通过ip进行访问并跳转到自定义500页面的操作

    在本文中,我们将深入探讨如何使用Nginx配置来禁止用户直接通过IP地址访问服务器,并在发生错误时重定向到自定义的错误页面。Nginx是一个高性能的HTTP和反向代理服务器,常用于网站的负载均衡和静态内容服务。在特定...

    Nginx如何封禁IP和IP段的实现

    对于特定的应用场景,比如仅允许内网IP访问而禁止所有外网IP,可以通过在location块中设置规则实现: ``` location / { deny ***.***.*.*; allow ***.***.*.*/24; deny all; } ``` 在上面的配置中,***.***.*.*...

    详解CentOS下Nginx如何禁止IP访问

    服务器的安全相信是每位运维人员最关心的问题,不知道大家在使用的时候会不会遇到很多的恶意IP攻击,最近公司的服务器就遇到了这个问题,这个时候就要用到Nginx 禁止IP访问了。本文介绍了详细的步骤,有同样问题的...

    Nginx服务器中设置禁止访问文件或目录的方法

    例如,只允许192.168.1.0/24网段的IP访问: ```nginx location /sensitive/ { allow 192.168.1.0/24; deny all; } ``` 这样,除了192.168.1.0到192.168.1.255的IP,其他所有IP都无法访问`/sensitive/`目录。 ...

    Nginx服务器屏蔽与禁止屏蔽网络爬虫的方法

    在处理网络爬虫的策略中,Nginx可以用来限制或禁止特定爬虫的访问,以保护服务器资源和数据安全。以下是关于Nginx服务器屏蔽与禁止屏蔽网络爬虫的方法的详细说明: 首先,我们可以通过Nginx的配置文件来识别并阻止...

    Nginx指南 Nginx 服务器

    访问控制方面,Nginx提供了身份验证、禁止访问某些类型的文件、限制IP访问、下载限制并发和速率、大文件上传限制以及实现类似Apache目录列表功能等多种方法。同时,Nginx还支持http_accesskey_module模块,用于增强...

    Nginx防止直接用IP访问Web服务器的设置方法

    下面将详细介绍在Nginx中设置禁止直接用IP访问Web服务器的方法,以及如何进行SEO优化。 首先,我们了解为什么需要禁止通过IP地址访问网站。直接通过IP地址访问网站可能会带来以下几个问题: 1. 安全风险:通过IP...

    Web应用安全:Nginx权限配置.pptx

    在Nginx中,可以设定各IP访问服务器的权限,命令格式如下: allow/deny address | CIDR | all 允许访问 禁止访问 Nginx权限配置 3、参数详解 #address,允许访问的客户端IP,不支持同时设置多个。如果有多个IP需要...

Global site tag (gtag.js) - Google Analytics