今天要在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的conf目录下面,... blocksip.conf:的格式还有许多种,可以配置只允许的IP访问或者IP段访问: deny IP; allow IP; # block all ips deny all; # allow all ips allow all; 其中网段的
以下是一些关于如何通过Nginx配置来实现禁止IP访问、只允许域名访问的具体知识点。 首先,Nginx的监听指令listen用于指定监听的端口,同时也可以指定监听的IP地址。当用于指定IP地址时,可通过default或default_...
目录遍历攻击是一种常见的Web安全威胁,攻击者尝试通过在URL中添加特定的路径或文件名,如"../"或"/*53.pdf",来访问服务器上原本不应该公开的目录和文件。这种攻击可能导致数据泄露、服务中断甚至完全控制服务器。...
在Nginx配置文件(通常是`/etc/nginx/nginx.conf`或`/usr/local/nginx/conf/nginx.conf`)中,可以使用`allow`和`deny`指令来允许或禁止特定IP或IP段的访问。以下是一个示例: ```nginx server { listen 80; ...
在配置Nginx禁止IP访问时,也有可能遇到某些技术限制或错误,这可能是由于配置文件中的语法错误或者其他配置不当导致的。此时,使用nginx -t命令来测试配置文件的正确性是一个好习惯,它可以检查配置文件是否有语法...
总之,Nginx通过灵活的`location`指令和条件判断,可以实现精细的IP访问控制。这不仅有助于提升网站安全性,还可以防止恶意攻击或滥用。在实际操作中,应根据具体需求调整配置,并注意定期审查和更新这些规则。
在Apache服务器中,可以通过修改`httpd.conf`配置文件来禁止特定IP访问。使用`<Location>`指令和`Order`、`Deny`、`Allow`规则,可以设置允许和拒绝的策略。例如,以下配置将拒绝直接通过IP `221.*.*.*` 访问,但...
国内因为备案的原因,所有服务器都要禁止使用IP访问网站。否则,如果允许使用IP访问网站,那随便解析一个域名到该IP,访问该域名就可以打开网站了。这是一个极大的风险!Nginx中可以很方便的来解决这个问题,小菜鸟...
在本文中,我们将深入探讨如何使用Nginx配置来禁止用户直接通过IP地址访问服务器,并在发生错误时重定向到自定义的错误页面。Nginx是一个高性能的HTTP和反向代理服务器,常用于网站的负载均衡和静态内容服务。在特定...
对于特定的应用场景,比如仅允许内网IP访问而禁止所有外网IP,可以通过在location块中设置规则实现: ``` location / { deny ***.***.*.*; allow ***.***.*.*/24; deny all; } ``` 在上面的配置中,***.***.*.*...
服务器的安全相信是每位运维人员最关心的问题,不知道大家在使用的时候会不会遇到很多的恶意IP攻击,最近公司的服务器就遇到了这个问题,这个时候就要用到Nginx 禁止IP访问了。本文介绍了详细的步骤,有同样问题的...
例如,只允许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提供了身份验证、禁止访问某些类型的文件、限制IP访问、下载限制并发和速率、大文件上传限制以及实现类似Apache目录列表功能等多种方法。同时,Nginx还支持http_accesskey_module模块,用于增强...
下面将详细介绍在Nginx中设置禁止直接用IP访问Web服务器的方法,以及如何进行SEO优化。 首先,我们了解为什么需要禁止通过IP地址访问网站。直接通过IP地址访问网站可能会带来以下几个问题: 1. 安全风险:通过IP...
在Nginx中,可以设定各IP访问服务器的权限,命令格式如下: allow/deny address | CIDR | all 允许访问 禁止访问 Nginx权限配置 3、参数详解 #address,允许访问的客户端IP,不支持同时设置多个。如果有多个IP需要...