一、基于Basic Auth认证与基于IP的访问控制

一、基于Basic Auth认证

  Nginx提供HTTP的Basic Auth功能,配置了Basic Auth之后,需要输入正确的用户名和密码之后才能正确的访问网站。

  1、安装httpd-tools,用htpasswd来生成密码信息

  首先要安装httpd-tools,在httpd-tools中包含了htpasswd命令。

yum install -y httpd-tools

  2、创建一个用户,然后基于这个用户通过htpasswd命令生成用户名及对应密码数据库文件

#创建用户
useradd webuser #创建密码管理目录
mkdir -p /etc/nginx/auth/ #创建密码
# htpasswd -c /etc/nginx/auth/passwd.db webuser //创建认证信息,webuser 为认证用户名
New password: ******* //输入认证密码 web@user
Re-type new password: ******** //再次输入认证密码 web@user
Adding password for user webuser #修改网站认证数据库权限
chmod /etc/nginx/auth/passwd.db #修改网站认证数据库属主和属组
chown root:root /etc/nginx/auth/passwd.db #查看通过htpasswd生成的密码为加密格式
#cat /etc/nginx/auth/passwd.db
wyl:r5IXRXWSmlBk6

  2、编辑nginx的配置文件

server {
listen ;
server_name localhost; client_max_body_size 151m; location / {
auth_basic "s1"; #虚拟主机认证命名
auth_basic_user_file /etc/nginx/auth/passwd.db; #虚拟主机用户名密码认证数据库
proxy_pass http://10.0.0.10:8088; #访问
}
}

  3、重启nginx

nginx -s reload

  4、访问测试

  需要输入密码和账号,输入正确的用户名和密码之后,才可以访问相应的内容。

二、基于IP的访问控制

  通过IP进行访问控制基于nginx模块ngx_http_access_module

  1、模块安装

  nginx中内置ngx_http_access_module,除非编译安装时指定了–without-http_access_module

  2、指令

    1、allow

  语法: allow address | CIDR | unix: | all;

  默认值: -

  配置段: http, server, location, limit_except

  允许某个ip或者一个ip段访问。如果指定unix:,那将允许socket的访问。

    2、deny

  语法:deny address | CIDR | unix: | all;

  默认值: -

  配置段: http, server, location, limit_except

  禁止某个ip或者一个ip段访问.如果指定unix:,那将禁止socket的访问

  3、示例

location / {
deny 192.168.1.1;
allow 192.168.1.0/;
allow 10.1.1.0/;
allow :0db8::/;
deny all;
}

  从上到下的顺序,类似iptables。匹配到了便跳出。如上的例子先禁止了192.16.1.1,接下来允许了3个网段,其中包含了一个ipv6,最后未匹配的IP全部禁止访问。

  被deny的将返回403状态码。

nginx的访问控制的更多相关文章

  1. Nginx IP访问控制,只允许指定的IP地址访问

    Nginx可以进行IP访问控制,配置指定的IP地址访问服务器网站 今天领导提出一个新的业务需求,网站上线时让外部用户在上线时间段访问到的页面是维护页面,公司内部员工在上线时段可用正常访问公司的网站. ...

  2. Nginx详解九:Nginx基础篇之Nginx的访问控制

    基于IP的访问控制:http_access_module 不允许指定网段的用户访问:配置语法:deny address | CIDR | unix: | all;默认状态:-配置方法:http.ser ...

  3. 基于Nginx实现访问控制、连接限制

    0 前言 Nginx自带的模块支持对并发请求数进行限制, 还有对请求来源进行限制.可以用来防止DDOS攻击.阅读本文须知道nginx的配置文件结构和语法. 1. 默认配置语法 nginx.conf作为 ...

  4. nginx之访问控制http_access_module与http_auth_basic_module

    http_access_module 作用 基于IP的访问控制 语法 使用 局限性 解决办法 1. http_x_forwarded_for http_auth_basic_module 作用 基于用 ...

  5. 全面掌握Nginx配置+快速搭建高可用架构 一 Nginx的访问控制

    语法 示例 allow 127.0.0.1; deny all; 缺点:局限性 如果通过代理就可以绕过访问限制,限制不准确 解决 1. http_x_forwarded_for 2. 结合geo模块作 ...

  6. LNMP配置——Nginx配置 ——访问控制

    #vi /usr/local/nginx/conf/vhost/test.com.conf 写入: server { listen 80; server_name test.com test1.com ...

  7. nginx 请求限制和访问控制

    请求限制 限制主要有两种类型: 连接频率限制: limit_conn_module 请求频率限制: limit_req_module HTTP协议的连接与请求 HTTP协议是基于TCP的,如果要完成一 ...

  8. 006.Nginx访问控制

    一 Nginx连接限制 1.1 HTTP协议的连接与请求 HTTP是建立在TCP, 一次HTTP请求需要先建立TCP三次握手(称为TCP连接),在连接的基础上再进行HTTP请求. HTTP请求建立在一 ...

  9. nginx应用总结(1)--基础认识和应用配置

    在linux系统下使用nginx作为web应用服务,用来提升网站访问速度的经验已五年多了,今天在此对nginx的使用做一简单总结. 一.nginx服务简介Nginx是一个高性能的HTTP和反向代理服务 ...

随机推荐

  1. nginx的80端口跳转到443

    然后在80端口设置http跳转到https 在80端口location中加入rewrite ^(.*)$ https://$host$1 permanent; 如图,然后输入命令service ngi ...

  2. springCloud学习之服务注册和发现

    leader让完一个简单的springcloud的demo,自己之前听说过springcloud微服务,但是没有重视.现在网上查各种资料,但是感觉不怎么样啊,还是不会,明天晚上把代码给他看,天啦,这个 ...

  3. 怎样将flac音频格式转换成MP3格式

    Flac音频格式怎样转换成MP3格式呢?随着现在音频格式的不断多样性,生活中很多时候我们都会遇到音频格式转换的问题,如flac音频转MP3的问题,那么我们应该如何去解决这个问题呢?下面我们就一起去来一 ...

  4. Codeforces 698A - Vacations - [简单DP]

    题目链接:http://codeforces.com/problemset/problem/698/A 题意: 有 $n$ 天假期,每天有四种情况:0.体育馆不开门,没有比赛:1.体育馆不开门,有比赛 ...

  5. [No000010C]Git5/9-远程仓库

    到目前为止,我们已经掌握了如何在Git仓库里对一个文件进行时光穿梭,你再也不用担心文件备份或者丢失的问题了. 可是有用过集中式版本控制系统SVN的童鞋会站出来说,这些功能在SVN里早就有了,没看出Gi ...

  6. SQL Fundamentals || Oracle SQL语言

    对于SQL语言,有两个组成部分: DML(data manipulation language) 它们是SELECT.UPDATE.INSERT.DELETE,就象它的名字一样,这4条命令是用来对数据 ...

  7. 待选框、目标框select项目左右移动

    效果: 可以用一般的select multiple="multiple".自己写jq定义左移.右移.全部左移.全部右移.保存submit后端来操作select属性,方法参考html ...

  8. LeetCode 561 Array Partition I 解题报告

    题目要求 Given an array of 2n integers, your task is to group these integers into n pairs of integer, sa ...

  9. Appium入门(9)—— Appium API

    摘自:http://www.testclass.net/appium/appium-base-api-01/ 1.安装: installApp() driver.installApp("d: ...

  10. vue-loader是什么?使用它的用途有哪些?

    vue-loader是解析 .vue 文件的一个加载器,跟 template/js/style转换成 js 模块: 用途:js可以写es6.style样式可以scss或less:template可以加 ...