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

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

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

如下的配置项,可以设置允许使用IP访问网站。

复制代码 代码如下:

server {
    listen       80;
    server_name  "";
}

这里相当于是绑定了一个空的主机头,于是任意主机头,只要是指向这个IP的都可以打开网站了。

如果需要Nginx禁止使用IP访问网站,可以定义如下主机,丢弃这些请求:

复制代码 代码如下:

server {
    listen       80;
    server_name  "";
    return       444;
}

在这里,我们设置主机名为空字符串以匹配未定义“Host”头的请求,而且返回了一个nginx特有的,非http标准的返回码444,它可以用来关闭连接。

从0.8.48版本开始,这已成为主机名的默认设置,所以可以省略server_name "",即如下的配置即可:

复制代码 代码如下:

server {
    listen       80;
    return       444;
}

时间: 2024-09-19 17:25:58

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

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;    }   

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的访问规则将被启用.

nginx中域名、目录的301重定向配置示例_nginx

301重定向不陌生, 有时候有需求把某目录整个重定向到一个二级域名,或者不带www的顶级域名请求全部重定向到带www的二级域名.如果是Apache,需要配置.htaccess,nginx不支持,需要在配置文件里面使用rewrite指令来实现. 顶级域名重定向到www 复制代码 代码如下: server {  server_name jb51.net;  rewrite ^/(.*)$ http://www.jb51.net/$1 permanent;  } 如上配置,所以jb51.net的请求都

Apache设置禁止使用IP访问网站的方法

一般来说,网站可以用域名和IP来访问.但是,如果您的网站可以通过IP直接访问,就会有一些隐患,比如被域名恶意解析等.那么如何设置禁止IP直接访问呢,本文就为大家介绍下方法. 修改方法 修改Apache配置文件Httpd.conf 如果你的Apache开通了虚拟主机,则需要修改conf/下的httpd-vhosts.conf文件.如何判断Apache是否开通了虚拟主机,在配置文件httpd.conf中搜索,若有类似如下的选项的,则是开启了虚拟主机. Virtual hosts Include ht

Nginx中防止SQL注入攻击的相关配置介绍_nginx

防止sql注入最好的办法是对于提交后台的所有数据都进行过滤转义. 对于简单的情况,比如包含单引号' , 分号;, <, >, 等字符可通过rewrite直接重订向到404页面来避免. 用rewrite有个前提需要知道,一般用rewrite进行正则匹配只能匹配到网页的URI,也就是url中?前部分,?以后部分是请求参数. 问号后面的请求参数,在nginx用$query_string表 示,不能在rewrite中匹配到,需要用if判断 例如,对于参数中带有单引号的'进行匹配然后定向到错误页面, /

禁止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

禁止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访问网站例子

大家都有遇到过可以通过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

Nginx如何配置禁止通过IP访问

生产环境,今天无意中用IP访问了一下,发现竟然可以访问到,有一个域名被做为了默认域名.网上找了一下资料,Nginx可以设置禁止通过IP访问的. 在任一有效的Nginx配置文件中加上以下一段 # forbidden use ip address access server { listen 80 default_server; server_name _; return 444; } 其实思路很简单,就是用IP访问的时候,返回444错误. 本文出自 "吖吖個呸" 博客,请务必保留此出处h