Nginx认证模块与状态监测模块使用示例

Nginx认证模块与状态监测模块使用示例

一、环境准备

1. 软件版本

  • CentOS7.4

  • httpd-tools.x86_64        2.4.6-67.el7.centos.6

  • nginx.x86_64                  1:1.12.2-2.el7

2. 软件安装

  • nginx的安装需要epel源,没有配置epel可以直接yum安装一下:

    [root@wind ~]# yum install epel-release.noarch -y
    [root@wind ~]# yum clean all && yum makecache
  • 安装nginx

    [root@wind ~]# yum install nginx -y

  • httpd-tools 

    CentOS7.4已经预装了httpd服务,同时也默认安装了此工具。没有的话也可以yum装一下。

3. 实验环境检查

  • 因为系统里已经安装了httpd服务,所以要提前检查80端口是否被占用。

    [root@wind ~]# ss -tnl |grep 80
    LISTEN     0      128    192.168.7.138:80                       *:*
    [root@wind ~]# systemctl stop httpd
    [root@wind ~]# systemctl disable httpd
    Removed symlink /etc/systemd/system/multi-user.target.wants/httpd.service.
  • 确定一下yum安装的nginx配置文件路径

    [root@wind ~]# rpm -ql nginx |grep nginx.conf
    /etc/nginx/nginx.conf
    /etc/nginx/nginx.conf.default
  • 先启动nginx服务测试下是否正常

    [root@wind ~]# systemctl start nginx
    [root@wind ~]# ss -tnl |grep 80
    LISTEN     0      128          *:80                       *:*                  
    LISTEN     0      128         :::80                      :::* #默认同时监听了ipv6
    [root@wind ~]# curl -I -m 10 -o /dev/null -s -w %{http_code} http://localhost
    200                           #此方法常用于脚本中测试web服务
    [root@wind ~]# curl -I -s -l  http://localhost |sed -n '1p'
    HTTP/1.1 200 OK
    [root@wind ~]# curl -I -s -l  http://localhost |grep 200
    HTTP/1.1 200 OK

二、测试认证功能

1. 使用htpasswd配置认证访问的用户

  • 添加认证用户jerry,注意此用户与系统内的用户无关。

    [root@wind ~]# htpasswd -c /etc/nginx/.ngxpasswd jerry
    New password: 
    Re-type new password: 
    Adding password for user jerry

2. 修改nginx配置文件启用认证访问。

  location  /secret/ {
          auth_basic "It's a secret!";
          auth_basic_user_file /etc/nginx/.ngxpasswd;
          }

3. 在nginx目录下添加测试页面。并重载配置文件

  [root@wind ~]# rpm -ql nginx |grep index
  /usr/share/nginx/html/index.html
  [root@wind ~]# mkdir /usr/share/nginx/html/secret
  [root@wind ~]# echo "I don't have any secret." > /usr/share/nginx/html/secret/main.html
  [root@wind ~]# /usr/sbin/nginx -s reload

4. 测试效果

  [root@wind ~]# curl -u jerry http://192.168.7.138/secret/main.html
  Enter host password for user 'jerry':
  I don't have any secret.

三、添加状态监测页面并开启认证

1.修改nginx配置文件

location = /status {
        allow 192.168.7.0/24;   #为了安全可以设定ip范围
        deny all;
        auth_basic "";      #不想提示为何认证留空就好
        auth_basic_user_file /etc/nginx/.ngxpasswd;
        stub_status;
        }

2. 查看效果

[root@wind ~]# /usr/sbin/nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
[root@wind ~]# /usr/sbin/nginx -s reload
[root@wind ~]# curl -u jerry http://192.168.7.138/status
Enter host password for user 'jerry':
Active connections: 1 
server accepts handled requests
 72 72 83 
Reading: 0 Writing: 1 Waiting: 0 

3. stub参数说明

 Active connections: 活动状态的连接数;                   

accepts:已经接受的客户端请求的总数;                   

handled:已经处理完成的客户端请求的总数;                   

requests:客户端发来的总的请求数;                   

Reading:处于读取客户端请求报文首部的连接的连接数;                   

Writing:处于向客户端发送响应报文过程中的连接数;                   

Waiting:处于等待客户端发出请求的空闲连接数;

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/101940

(0)
net31_行者无疆net31_行者无疆
上一篇 2018-06-28 22:24
下一篇 2018-06-29 11:18

相关推荐

  • mysql sql语言 增删改查

    数据库 数据 增create insert 删drop delete 改alter update 查 select 创建数据库db1 查看数据库目录db1 删除数据库 查看字符集列表 查看表 创建表 查看表的定义 查看表的属性信息 创建表 查看表的定义 查看表的具体信息 查看完整表的定义 查看user表的定义 利用别的表的信息创建表 创建一张表像另一张 表 …

    Linux笔记 2018-06-11
  • Linux作业管理,并行运行,任务计划(at任务和cron任务)

    本文主要介绍:1、Linux作业管理 2、并行运行 3、任务计划(at 一次性任务和 cron 周期性任务)

    2018-05-06
  • MySQL之SQL语法介绍

    结构化查询语言(Structured Query Language)简称SQL,是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名

    2018-06-07
  • linux用户组命令使用方法

    实现用户账号的管理,要完成的工作主要有如下几个方面:
    用户账号的添加、删除与修改。
    用户口令的管理。
    用户组的管理。

    Linux笔记 2018-04-05
  • awk

    awk介绍awk里表示字符串要用双引号引起来awk:Aho, Weinberger, Kernighan,报告生成器,格式化文本输出有多种版本:New awk(nawk),GNU awk( gawk)gawk:模式扫描和处理语言基本用法:awk [options] ‘program’ var=value file… 选项,程序(语言),变量赋值awk [op…

    Linux笔记 2018-05-20
  • Linux命令之hash

    hash的指令,参数。

    2018-07-29