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

相关推荐

  • Linux中的文本查看和处理练习题

    linux中的文本查看和处理练习题
    linux用户和组管理类命令的使用方法及练习

    Linux笔记 2018-07-08
  • linux与xshell入门

    难的不行,做标记

    2018-07-29
  • 磁盘存储和文件系统

    磁盘存储和文件系统: 磁盘设备的文件命名:/dev/dev_file虚拟磁盘:/dev/vd磁盘标识: /dev/sda,/dev/sdb……磁盘分区:/dev/sda1,/dev/sdb2…… chs 磁盘sector 扇区 512bytestrack 磁道head 磁头cylinder柱面 使用磁盘: 分区创建文件系统:格式化挂载:分配目录名 hexdu…

    Linux笔记 2018-05-20
  • vim文本编辑器及文本处理常用命令

    Vim是从 vi发展出来的一个文本编辑器。代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用。

    2018-04-08
  • 路由

    地址分类有类的 固定的网络ID 是多少位就是多少位A 前8位是网络ID0-127.x.x.x其中0.x.x.x是未知地址,不能用127.x.x.x是回环地址,不能用所以有1-126个网段可用公式:网络(网段)数量=2^可变网络ID位数一个网络的主机数量=2^主机ID位数-2所以一个A类网络主机数有1600万netmask:255.0.0.0 B类128-19…

    Linux笔记 2018-05-06