Nginx禁止直接使用IP访问网站例子

大家都有遇到过可以通过ip直接访问网站,这样理论上不利于SEO的优化。
所以我们希望可以避免直接用IP访问网站,而只能通过域名访问。
具体怎么做呢,看下面。

官方文档中提供的方法:

If you do not want to process requests with undefined "Host" header lines, you may define a default server that just drops the requests:

server {
 
listen 80 default_server;
 
server_name _;
 
return 444;
 
}

通过上面的设置当你用ip访问就直接重置444错误。
但是这样好像又不太友好,如果能直接给跳转到该web server的网址就好了。
配置如下:

server {
 
listen 80 default_server;
 
server_name _;
 
rewrite ^ http://www.111cn.net $request_uri?;
 
}

这样还是有一点问题,某些特别的地址,我需要用ip访问,其他的都禁止,如何配置呢?
比如说我想让监控宝直接用ip访问我的机器的nginx状态信息,其他的用ip访问的所有请求都跳转到域名上

server {
 
listen 80 default_server;
 
server_name _;
 
location /xxxxx{
 
stub_status on;
 
access_log off;
 
}
 
location /{
 
rewrite ^ http://www.111cn.net $request_uri?;
 
}
 
}
这样就实现了我们想要的功能了。

补充:

server {
listen       80 default;
return 500;
}

 

在server里添加以上配置就可以实现了

但是网上很多文章都说这样有个问题,问题如下

现在不能通过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可以访问

解决方法:

server
{
listen 80 default;
server_name _;
return 500;
}

 

也很简单,也就在listen 80 default;这行后面添加server_name_;就可以解决

具体是不是这样我没有试过。

 

时间: 2024-10-01 15:02:06

Nginx禁止直接使用IP访问网站例子的相关文章

Nginx禁止用户真实IP访问的方法配置

做过面向公网WEB运维的苦逼们肯定见识过各种恶意扫描.拉取.注入等图谋不轨行为吧?对于直接对外的WEB服务器,我们可以直接通过 iptables . Nginx 的deny指令或者是程序来ban掉这些恶意请求.   而对于套了一层 CDN 或代理的网站,这些方法可能就失效了.尤其是个人网站,可能就一台VPS,然后套一个免费的CDN就行走在互联网了.并不是每个CDN都能精准的拦截各种恶意请求的,更闹心的是很多CDN还不支持用户在CDN上添加BAN规则,比如腾讯云CDN...   因此,就有了本文的

禁止IP访问网站的多种方法分享(linux,php,nginx,apache)_服务器其它

PHP禁止某个IP或IP段访问 废话不多说,客官请看: <? //禁止某个IP $banned_ip = array ( "127.0.0.1", //"119.6.20.66", "192.168.1.4" ); if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ) { die ("您的IP禁止访问!"); } //禁止某个IP段 $ban_ran

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

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

PHP禁止掉某地区的IP访问网站,不过滤搜索引擎的蜘蛛

这个里面的代码直接拷贝了OSC一位朋友的,稍等下来贴地址.这会儿太慢,找不到了..   function get_ip_data(){ $ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip()); $ip = json_decode($ip); if($ip->code){ return false; } $data = (array) $ip->data;

PHP禁止个别IP访问网站_php实例

想不让某个IP访问网站,可以封他的IP,下面就提供这个方法.看下面的代码. 复制代码 代码如下: function get_ip_data(){       $ip=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=".get_client_ip());    $ip = json_decode($ip);    if($ip->code){        return false;    }   

急求各位大神!!!如何用java来实现代理ip访问网站?刷访问量。!!!!!!!!!

问题描述 急求各位大神!!!如何用java来实现代理ip访问网站?刷访问量.!!!!!!!!! 如何用java实现代理ip访问网站,刷访问量.!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! 解决方案 http://proxy.goubanjia.com/article/4.shtml

C#或者delphi如何怎么模拟几百万IP访问网站

问题描述 最近在想一个东西,就是写一个模拟百万IP访问网站,并且每个IP可以持续点击产生后续行为,请问应该怎么入手?还有百万IP怎么实现,从哪儿找这个资源,或者谁知道,谢谢. 解决方案 解决方案二:顶一下,顶一下解决方案三:9点半都过了,睡吧.等明天天上会下硬币雨,好人坏人都有份,直接捡钱就行了.解决方案四:压力测试不是你这么做的--解决方案五:这个模拟不了不过你可以部署到服务器可以实际操作下..几百万用户很简单只要你有钱我保证你网站瞬间就有几亿人点击....解决方案六:哼,"几百万用户点击&q

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

PHP禁止某个IP或IP段访问 废话不多说,客官请看:  代码如下 复制代码 <?    //禁止某个IP $banned_ip = array ( "127.0.0.1", //"119.6.20.66", "192.168.1.4" ); if ( in_array( getenv("REMOTE_ADDR"), $banned_ip ) ) { die ("您的IP禁止访问!"); } //禁止

Nginx 拒绝指定IP访问网站的配置

Nginx 拒绝指定IP访问的方法其实非常的简单,我们来看简单的配置 下面的这个例子将拒绝掉所有的连接: location / {   #这里将永远输出403错误.   deny all;   #这些指令不会被启用,因为到达的连接在第一条已经被拒绝   deny    192.168.1.1;   allow   192.168.1.0/24;   allow   10.1.1.0/1 } 当然我们可以有一部份合法的IP可以访问 控制规则按照声明的顺序进行检查,首条匹配IP的访问规则将被启用.