文档章节

Nginx 手记(四)访问控制

神奇Sam
 神奇Sam
发布于 2017/08/30 14:41
字数 663
阅读 506
收藏 0
点赞 0
评论 0

Nginx的访问控制

  • 基于IP的访问控制:http_access_module
  • 基于用户的信任登陆:http_auth_basic_module

一、http_access_module 访问模块

#允许:允许指定的ip 或ip网段 或unix上的socket访问 或所有
语法:allow address|CIDR|unix:|all
默认值:无
上下文:http,server,location,limit_except

#禁止:禁止指定...
语法:deny address|CIDR|unix:|all
默认值:无
上下文:http,server,location,limit_except
用例:
server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /opt/site/sam;
        index  index.html index.htm;
    }

    #~模式匹配 以/admin.html开头的访问
#    location ~ ^/admin.html {
#        root /opt/site/sam;
#        deny 113.111.48.118;    #禁止该ip访问
#        allow all;              #允许其他所有访问
#        index index.html index.htm; 
#    }
    
    #~模式匹配 以/admin.html开头的访问
    location ~ ^/admin.html {
        root /opt/site/sam;
        allow 113.111.48.0/24;    #允许该ip段访问 113.111.48.0 到 113.111.48.24
        deny all;                #禁止其他所有访问
        index index.html index.htm; 
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    
}
检测下配置语法:
[root@sam ~]# nginx -tc /etc/nginx/nginx.conf
重新加载配置
[root@sam ~]# nginx -s reload -c /etc/nginx/nginx.conf

局限性:

remote_addr:获取上一级的ip地址,可能是客户端的ip地址,也可能是上一级代理的ip地址

http_x_forwarded_for:所有ip地址,包括:客户端ip地址以及所有的代理ip地址

http_access_module模块则是使用了remote_addr实现访问控制,如果客户端使用了代理进行访问,那么不能准确的获取到客户端ip,而不能准确对其进行控制。

二、http_auth_basic_module 用户登陆认证模块

#用户认证配置
#string:登陆提示
语法:auth_basic string|off;
默认值:auth_basic off; #默认关闭
上下文:http,server,location,limit_except

#配置 存储用户授权信息(账号密码)的文件路径
语法:auth_basic_user_file file;
默认值:无
上下文:http,server,location,limit_except

1、新建密码文件(使用htpasswd)

使用htpasswd生成密码文件
#新建一个密码文件(指定文件名为/etc/nginx/auth_conf),用户名为sam,并设置密码。
[root@sam ~]# htpasswd -c /etc/nginx/auth_conf sam
New password: 
Re-type new password: 
Adding password for user sam
如果没有htpasswd工具,安装httpd-tools 即可:
[root@sam ~]# yum install httpd-tools -y

2、server中配置

server {
    listen       80;
    server_name  localhost;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /opt/site/playSports;
        index  index.html index.htm;
    }

    #匹配以/admin.html开头的访问
    location ~ ^/admin.html {
        root    /opt/site/sam;
        auth_basic "Auth access test!input your password!"; #登陆提示语
        auth_basic_user_file /etc/nginx/auth_conf;          #密码文件路径
        index   index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
}
浏览器访问:http://你的ip/admin.html ,进入登陆验证。
注意:需要在项目目录下新建 admin.html 文件,进行测试。

© 著作权归作者所有

共有 人打赏支持
神奇Sam
粉丝 18
博文 41
码字总数 27998
作品 0
广州
程序员
《Python自动化运维开发实战》课程配套手记内容列表

自动化实战课程的手记内容手记列表 各位同学,《Python自动化运维开发实战》实战课中的配套手记内容列表如下,供大家参考学习,已经出的手记将参考大家的实际情况进行补充,其他的配套课程整...

幕客技术 ⋅ 01/12 ⋅ 0

Multi-Stage Build多阶段Build Docker镜像

我们在上一篇手记 中给大家介绍了如何完全使用Docker搭建Angular开发和测试环境,今天我们接着这个话题给大家看看如果通过Docker部署Angular项目。 我们先看看假如没有Docker,我们一般怎么去...

麦兜搞IT ⋅ 05/29 ⋅ 0

ThinkSNS安装手记

懒人方案失效 一直有WampServer,遂,ThinkSNS,解压,Coyp到www,然后,安装,卡在curl上。各种方案,胎死腹中。 拉出ubuntu来,开练。 以前已经装好了nginx+php,不会的可自行百度。 Thin...

围观 ⋅ 2014/04/02 ⋅ 0

Nginx配置:防盗链、访问控制、解析PHP以及代理

一、Nginx防盗链 防盗链是指一个网站的资源(图片或附件)未经允许在其它网站提供浏览和下载,尤其热门资源的盗链,对网站带宽的消耗非常大,设置防盗链以节省资源。 1、修改虚拟主机配置文件 ...

BatmanLinux ⋅ 03/15 ⋅ 0

ubuntu下nginx安装手记

Nginx是一个高性能的HTTP和反向代理服务器. Nginx 使用 Unix 下常用的 './configure && make && make install' 过程来编译安装. configure 脚本确定系统所具有一些特性,特别是 nginx 用来处...

mfcai ⋅ 2013/01/03 ⋅ 0

Nginx Tomcat 配置 https

一. 阿里云申请免费https证书 二. 配置 Nginx 的 HTTPS 1. 创建一个存储证书的目录: 在Nginx主目录下创建cert文件夹,在cert文件夹内创建cjjk文件夹 2. 上传 .key 和 .pem 到cjjk文件夹内 ...

jenopob ⋅ 02/23 ⋅ 0

【PDF分享】Nginx 常见应用技术指南[Nginx Tips] 第二版.pdf

文档目录: 一、Nginx 基础知识 二、Nginx 安装及调试 三、Nginx Rewrite 四、Nginx Redirect 五、Nginx 目录自动加斜线: 六、Nginx Location 七、Nginx expires 八、Nginx 防盗链 九、Nginx...

鉴客 ⋅ 2010/09/12 ⋅ 4

Ngingx自学手册(二)常用配置虚拟主机,访问控制,认证和状态信息

环境概况: 具体测试步骤如下: (一)基于虚拟主机的配置。是通过不同的域名来区分提供的web服务器的主机,server_name指令主要用于配置基于域名的虚拟主机 1,首先在192.168.180.23修改/et...

lqbyz ⋅ 2017/07/31 ⋅ 0

Keepalived高可用+HAproxy实现Nginx+wordpress动静分离

背景介绍 随着时代的更新发展,我们对于网络访问的速度,容错性,冗余性,都要不断的提高,当然提高访问资源速度的方法有很多,其中动态资源与静态资源分类也是其中的一种,这里给出如何使用...

菜鸡天然呆 ⋅ 2017/05/18 ⋅ 0

从零开始搭建Kubernetes集群(五、搭建K8S Ingress)

一、前言 上一文《从零开始搭建Kubernetes集群(四、搭建K8S Dashboard)》介绍了如何搭建Dashboard。本篇将介绍如何搭建Ingress来访问K8S集群的Service。 二、Ingress简介 Ingress是个什么鬼...

宅楠军 ⋅ 05/14 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

笔试题之Java基础部分【简】【一】

基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语法,集合的语法,io 的语法,虚拟机方面的语法,其他 1.length、length()和size() length针对...

anlve ⋅ 24分钟前 ⋅ 2

table eg

user_id user_name full_name 1 zhangsan 张三 2 lisi 李四 `` ™ [========] 2018-06-18 09:42:06 星期一½ gdsgagagagdsgasgagadsgdasgagsa...

qwfys ⋅ 48分钟前 ⋅ 0

一个有趣的Java问题

先来看看源码: public class TestDemo { public static void main(String[] args) { Integer a = 10; Integer b = 20; swap(a, b); System.out......

linxyz ⋅ 53分钟前 ⋅ 0

十五周二次课

十五周二次课 17.1mysql主从介绍 17.2准备工作 17.3配置主 17.4配置从 17.5测试主从同步 17.1mysql主从介绍 MySQL主从介绍 MySQL主从又叫做Replication、AB复制。简单讲就是A和B两台机器做主...

河图再现 ⋅ 今天 ⋅ 0

docker安装snmp rrdtool环境

以Ubuntu16:04作为基础版本 docker pull ubuntu:16.04 启动一个容器 docker run -d -i -t --name flow_mete ubuntu:16.04 bash 进入容器 docker exec -it flow_mete bash cd ~ 安装基本软件 ......

messud4312 ⋅ 今天 ⋅ 0

OSChina 周一乱弹 —— 快别开心了,你还没有女友呢。

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子 :分享吴彤的单曲《好春光》 《好春光》- 吴彤 手机党少年们想听歌,请使劲儿戳(这里) @clouddyy :小萝莉街上乱跑,误把我认错成...

小小编辑 ⋅ 今天 ⋅ 8

Java 开发者不容错过的 12 种高效工具

Java 开发者常常都会想办法如何更快地编写 Java 代码,让编程变得更加轻松。目前,市面上涌现出越来越多的高效编程工具。所以,以下总结了一系列工具列表,其中包含了大多数开发人员已经使用...

jason_kiss ⋅ 昨天 ⋅ 0

Linux下php访问远程ms sqlserver

1、安装freetds(略,安装在/opt/local/freetds 下) 2、cd /path/to/php-5.6.36/ 进入PHP源码目录 3、cd ext/mssql进入MSSQL模块源码目录 4、/opt/php/bin/phpize生成编译配置文件 5、 . ./...

wangxuwei ⋅ 昨天 ⋅ 0

如何成为技术专家

文章来源于 -- 时间的朋友 拥有良好的心态。首先要有空杯心态,用欣赏的眼光发现并学习别人的长处,包括但不限于工具的使用,工作方法,解决问题以及规划未来的能力等。向别人学习的同时要注...

长安一梦 ⋅ 昨天 ⋅ 0

Linux vmstat命令实战详解

vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况。这个命令是我查看Linux/Unix最喜爱的命令...

刘祖鹏 ⋅ 昨天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部