Nginx实现基于ip的访问控制(Ngx_http_access_module模块)

Nginx实现基于ip的访问控制功能:(Ngx_http_access_module)

官方文档:http://nginx.org/en/docs/http/ngx_http_access_module.html

官方示例:

The ngx_http_access_module module allows limiting access to certain client addresses.限定资源只被指定的客户端访问。

Example Configuration:
location / {
    deny  192.168.1.1;        #自上而下检测,匹配范围小的在上面
    allow 192.168.1.0/24;
    allow 10.1.1.0/16;
    allow 2001:0db8::/32;
    deny  all;
}
Syntax: allow address | CIDR | unix: | all;
Default:
Context: http, server, location, limit_except
Syntax: deny address | CIDR | unix: | all;
Default:
Context: http, server, location, limit_except

Context:适用配置段

演示环境:

Server:192.168.47.140
Client1:192.168.47.137
Client2:192.168.47.138

[[email protected] ~]# cat /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core) 
[[email protected] ~]# uname -r
3.10.0-327.el7.x86_64
[[email protected] ~]# nginx -V 
nginx version: nginx/1.10.2
......

相关配置:

#Server配置:
[[email protected] ~]# cat /data/html/server/index.html 
<h1>192.168.47.140</h1>
[[email protected] ~]# vim /etc/nginx/conf.d/Vhost.conf
server {
        listen 80;
        location /server/ {
                root /data/html/;
                allow 192.168.47.137;    #设定允许192.168.47.137
                deny all;                #拒绝所有
        }
}
[[email protected] ~]# nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[[email protected] ~]# nginx -s reload

#测试:
#Client(192.168.47.137)访问:
[[email protected] ~]# ifconfig eno16777736 | grep "inet[[:space:]]" | sed ‘s/^.*et //g‘ | sed ‘s/netmask.*$//g‘
192.168.47.137  
[[email protected] ~]# curl http://192.168.47.140:/server/
<h1>192.168.47.140</h1>

#Client(192.168.47.138)访问:
[[email protected] ~]# ifconfig eno16777736 | grep "inet[[:space:]]" | sed ‘s/^.*et //g‘ | sed ‘s/netmask.*$//g‘
192.168.47.138  
[[email protected] ~]# curl http://192.168.47.140:/server/
<html>
<head><title>403 Forbidden</title></head>
<body bgcolor="white">
<center><h1>403 Forbidden</h1></center>    #403 Forbidden权限拒绝。
<hr><center>nginx/1.10.2</center>
</body>
</html>
时间: 2024-10-28 17:06:06

Nginx实现基于ip的访问控制(Ngx_http_access_module模块)的相关文章

详解Nginx两种方式实现访问控制

简介 基于用户的访问控制就是对网页目录进行认证配置,用户输入用户名密码之后才能访问网页基于IP的访问控制即使可以通过配置基于ip的访问控制,达到让某些ip能够访问,限制哪些ip不能访问的效果 实验环境 系统环境:CentOS7.4 服务器IP地址:192.168.100.71 客户端IP地址:192.168.100.72 yum挂载目录:/mnt/sr0 相关源码包下载地址:百度云下载 ??密码:uhzm 搭建步骤 一.准备工作 1.关闭防火墙及selinux [[email protected

nginx 用户访问添加密码;autoindex模块详解;传送client IP

nginx 基于用户的访问控制 htpasswd命令是Apache的Web服务器内置工具,用于创建和更新储存用户名.域和用户基本认证的密码文件. 1.建立口令文件--创建密码文件 一般口令文件最好创建在 /usr/local/nginx/ 下,这样是为了方便管理.下面是命令: mkdir /usr/local/nginx htpasswd -cm /usr//local/nginx/passwd  user01      //-c:创建一个加密文件: htpasswd -m /usr/local

linux下nginx实现虚拟主机(3种方法:基于域名、基于端口、基于ip地址)

在3.17日的时候已经写过一篇关于apahce的基于域名.端口.ip地址3种方式的虚拟主机实现.原理是一样的,现在记录nginx的虚拟主机这三种方式的实现. 系统版本为rhel5.6,nginx版本为1.1.6. 1.基于域名: 基于域名的方式,要先有dns服务器,这里为了方便,可以在/etc/hosts文件里面配置,把它当成dns就行了,可以参考3.17日那篇博客关于dns的配置或者其他博文也有.这里关于nginx的安装也略去. [[email protected] ~]# cat /etc/

nginx基于IP

基于IP的虚拟主机 首先添加3个IP [[email protected] extra]# ifconfig ifconfig eth0:133 172.20.100.133 netmask 255.255.252.0 up ifconfig eth0:132 172.20.100.132 netmask 255.255.252.0 up ifconfig eth0:131 172.20.100.131 netmask 255.255.252.0 up eth0:131  Link encap:

在Nginx中部署基于IP的虚拟主机

一.虚拟主机概念 虚拟主机是在网络服务器上划分出一定的磁盘空间供用户放置站点.应用组件等,提供必要的站点功能.数据存放和传输功能.所谓虚拟主机,也叫"网站空间", 就是把一台运行在互联网上的服务器划分成多个"虚拟"的服务器,每一个虚拟主机都具有独立的域名和完整的Internet服务器(支持WWW.FTP. E-mail等)功能,从用户角度来看,每台虚拟主机和一台独立的服务器完全相同,在IP地址日益紧张的今天,基于域名的虚拟主机要比基于IP的虚拟主机 使用的更加广泛.

nginx配置基于域名、端口、IP的虚拟主机

1.基于域名的虚拟主机: 绝大多数企业对外提供服务的网站使用的都是基于域名的主机,通过不同的域名区分不同的虚拟主机. 首先我们进入安装nginxd的目录下:/application/nginx-1.6.3/conf 我们去除掉默认配置文件里的注释和空行并重定向到nginx.conf文件里,同时我们需要配置如下: egrep -v "#|^$" nginx.conf.default >nginx.conf   //去掉包含#号和空行的内容 [[email protected] co

Nginx配置基于多域名、端口、IP的虚拟主机

原文:https://www.cnblogs.com/ssgeek/p/9220922.html ------------------------------- 1.类型介绍 1.1 基于域名的虚拟主机 所谓基于域名的虚拟主机,意思就是通过不同的域名区分不同的虚拟主机,基于域名的虚拟主机是企业应用最广的虚拟主机类型,几乎所有对外提供服务的网站使用的都是基于域名的主机,例如www.test1.com www.test2.com等 1.2 基于端口的虚拟主机 同理,所谓基于端口的虚拟主机,意思就是通

Nginx总结(二)基于ip的虚拟主机配置

前面讲了如何安装配置Nginx,大家可以去这里看看nginx系列文章:https://www.cnblogs.com/zhangweizhong/category/1529997.html 今天要说的是Nginx如何配置虚拟主机. 1. 什么是虚拟主机 虚拟主机是一种特殊的软硬件技术,它可以将网络上的每一台计算机分成多个虚拟主机,每个虚拟主机可以独立对外提供www服务,这样就可以实现一台主机对外提供多个web服务,每个虚拟主机之间是独立的,互不影响的. 如下图: 通过nginx可以实现虚拟主机的

nginx篇最初级用法之三种虚拟主机基于域名\基于端口\基于IP地址端口的虚拟主机

在nginx中虚拟主机的类型与apache一样也有三种 1.基于域名的虚拟主机 2.基于端口的虚拟主机 3.基于IP地址端口的虚拟主机 在nginx配置文件中每一个server为一个虚拟主机如果需要多个虚拟主机只需要添加server即可例如 server{ listen 80; server_name www.lqinghua.com   //基于域名的虚拟主机 location / { root def; index index.html; } } server{ listen 8080;