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

1、要禁止所有IP访问a1.htm a2.htm a3.htm这个三个页面在location可以这样写

location ~* /(a1.htm|a2.htm|a3.htm)$ {
 deny all;
 condition………;
}

2、只允许指定的ip访问a1.htm a2.htm a3.htm这个三个页面,其他IP的访问都拒绝

location ~* /(a1.htm|a2.htm|a3.htm)$ {
 allow 10.0.0.2;
 deny all;
 condition………;
}

这种设置只有ip地址为10.0.0.2的主机可以放问这三个页面,其他的ip都被拒绝了。

其他情况可以以此类推。

比如我需要指定只能8.8.8.8这个ip访问info.php页面。那么就可以在nginx-server中添加如下配置,即可

如果非8.8.8.8访问info.php页面,则返回403

后面需要加上跳转地址,proxy_pass http://192.168.1.110:10480;否则会404错误。

 location ~/info.php$ {

 if ($remote_addr != '8.8.8.8' ) {
 return 403;
 }
 proxy_pass http://192.168.1.110:10480;
 }
}

也可以在server代码中添加

location ~/info.php$ {
 allow 8.8.8.8;
 deny all;
 condition………;
}

一样的效果

如何配置禁用ip或ip段呢?

下面说明假定nginx的目录在/usr/local/nginx/

首先要建一个封ip的配置文件blockips.conf,然后vi blockips.conf编辑此文件,在文件中输入要封的ip。

deny 1.2.3.4;
deny 91.212.45.0/24;
deny 91.212.65.0/24;

然后保存此文件,并且打开nginx.conf文件,在http配置节内添加下面一行配置:

include blockips.conf;

保存nginx.conf文件,然后测试现在的nginx配置文件是否是合法的:

/usr/local/nginx/sbin/nginx -t

如果配置没有问题,就会输出:

the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
configuration file /usr/local/nginx/conf/nginx.conf test is successful

如果配置有问题就需要检查下哪儿有语法问题,如果没有问题,需要执行下面命令,让nginx重新载入配置文件。

/usr/local/nginx/sbin/nginx -s reload

只允许某些的ip访问页面,或者禁止某些ip访问页面

server_name es.mila66.com;
 location / {
 include /etx/nginx/all/ip.conf;
 deny all;

ip.conf里面的文件格式:

allow 192.168.1.11;
allow 192.168.1.12;

这样就实现了只允许某些ip访问页面。

如果禁止某些IP访问,只需要修改如下:把allow改成deny即可。

server_name es.mila66.com;
 location / {
 include /etx/nginx/all/ip.conf;
 allow all;

ip.conf里面的文件格式:

deny 192.168.1.11;
deny 192.168.1.12;

nginx -s reload

重启服务器即可

以上这篇Nginx限制IP访问某些页面的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • nginx配置限制同一个ip的访问频率方法

    1.在nginx.conf里的http{}里加上如下代码: limit_conn_zone $binary_remote_addr zone=perip:10m; limit_conn_zone $server_name zone=perserver:10m; 2.在需要限制并发数和下载带宽的网站配置server{}里加上如下代码: limit_conn perip 2; limit_conn perserver 20; limit_rate 100k; 补充说明下参数: $binary_rem

  • 通过Nginx解决网络隔离实践记录详解

    需求 最近需要迁移Node线上服务,于是新申请了两台线上服务器: 部署服务器后,需要验证服务是否正常,办公环境与线上环境网络是隔离的,无法直接访问:但是,线上服务器可通过部署服务器访问,而办公网络是可以访问部署机的: 所以,可通过在部署机上配置代理的方式,办公环境请求部署机,然后把请求代理到线上服务的方式验证服务是否正常. 整个网络结构如下图所示: Nginx安装 下载 下载页面: http://nginx.org/en/download.html选择版本鼠标右键拷贝链接地址 # 下载 [wor

  • nginx与apache限制ip并发访问 限制ip连接的设置方法

    nginx nginx限制ip并发数,也是说限制同一个ip同时连接服务器的数量 1.添加limit_zone 这个变量只能在http使用 vi /usr/local/nginx/conf/nginx.conf limit_zone one $binary_remote_addr 10m; 2.添加limit_conn 这个变量可以在http, server, location使用 我只限制一个站点,所以添加到server里面 vi /usr/local/nginx/conf/host/gaoji

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

    1.要禁止所有IP访问a1.htm a2.htm a3.htm这个三个页面在location可以这样写 location ~* /(a1.htm|a2.htm|a3.htm)$ { deny all; condition---; } 2.只允许指定的ip访问a1.htm a2.htm a3.htm这个三个页面,其他IP的访问都拒绝 location ~* /(a1.htm|a2.htm|a3.htm)$ { allow 10.0.0.2; deny all; condition---; } 这种

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

    我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时 候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回50

  • Nginx 禁止IP访问如何实现

    Nginx 禁止IP访问 我们在使用的时候会遇到很多的恶意IP攻击,这个时候就要用到Nginx 禁止IP访问了.下面我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有

  • Nginx禁止ip访问或非法域名访问

    在生产环境中,为了网站的安全访问,需要Nginx禁止一些非法访问,如恶意域名解析,直接使用IP访问网站.下面记录一些常用的配置示例: 1)禁止IP访问 如果没有匹配上server name就会找default默认,返回501错误. server { listen 80 default_server; server_name _; return 501; } 2)通过301跳转到主页 server { listen 80 default_server; server_name _; rewrite

  • Nginx+iptables屏蔽访问Web页面过于频繁的IP(防DDOS,恶意访问,采集器)

    脚本如下: 复制代码 代码如下: #!/bin/sh nginx_home = /Data/app_1/nginx log_path = /Data/logs /usr/bin/tail -n50000 $log_path/access.log \ |awk '$8 ~/aspx/{print $2,$13}' \ |grep -i -v -E "google|yahoo|baidu|msnbot|FeedSky|sogou" \ |awk '{print $1}'|sort|uniq

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

    我们就先看看Nginx的默认虚拟主机在用户通过IP访问,或者通过未设置的域名访问(比如有人把他自己的域名指向了你的ip)的时候生效最关键的一点是,在server的设置里面添加这一行: listen 80 default; 后面的default参数表示这个是默认虚拟主机. Nginx 禁止IP访问这个设置非常有用. 比如别人通过ip或者未知域名访问你的网站的时候,你希望禁止显示任何有效内容,可以给他返回500.目前国内很多机房都要求网站主关闭空主机头,防止未备案的域名指向过来造成麻烦. 就可以这样

  • 禁止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访问只允许特定域名访问

    目录 1.找到 nginx 的配置文件 2.添加新的 server 3.修改 server 4.访问测试 总结 为了我们的服务器安全,我们需要禁止直接使用 IP 访问我们的服务器,我们可以借助 Nginx 完成 1.找到 nginx 的配置文件 cd /usr/local/nginx/conf/ 找到 nginx.conf 文件 编辑它 2.添加新的 server # 禁止ip访问 server { listen 80 default_server; listen 443 ssl default

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

    直接上配置文件 server { listen 80 default; # 要禁止直接访问ip,需要加上default server_name ~.*; error_page 404 400 402 401 /404.html; # 定义错误状态码对应的html文件 location = /404.html { # 如果使用相对路径一般将文件放在nginx安装目录下的html/下,比如:/usr/local/nginx/html/404.html root html; } error_page

  • 通过Nginx反向代理实现IP访问分流的示例代码

    本文介绍了通过Nginx反向代理实现IP访问分流的示例代码,分享给大家.具体如下: 通过Nginx做反向代理来实现分流,以减轻服务器的负载和压力是比较常见的一种服务器部署架构.本文将分享一个如何根据来路IP来进行分流的方法. 根据特定IP来实现分流 将IP地址的最后一段最后一位为0或2或6的转发至test-01.com来执行,否则转发至test-02.com来执行. upstream test-01.com { server 192.168.1.100:8080; } upstream test

随机推荐