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
下一篇 2018-06-29

相关推荐

  • yum仓库的建立

    配置文件 1手动生成 /etc/yum.repos.d/FILE.repo [NAME] name=NAME baseurl=… gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 enable=1 2直接复制 http://mirrors.aliyun.com/repo/   /*直接下载阿里…

    Linux笔记 2018-04-29
  • Linux第一周命令总结

    hostname  完整主机名  cat +文件路径 可查看文件信息 cat /etc/centos-release 查看文件  版本的名称、发行时间所有shell cat/etc/shells  显示当前系统使用的 lsd_release -a  命令  查看版本 /etc/centos-release 是文本文件  cat是查看文本的命令 uname-r…

    2018-07-22
  • rpm

    rpm

    Linux笔记 2018-04-22
  • 磁盘阵列及逻辑卷的创建

    磁盘阵列 软件RAID的实现 mdadm:模式化的工具 命令的语法格式:mdadm[mode] <raiddevice> [options] <component-devices> 支持的RAID级别:LINEAR, RAID0, RAID1, RAID4, RAID5, RAID6, RAID10 模式: 创建:-C 装配: -A …

    Linux笔记 2018-04-30
  • 进程管理工具及计划任务

    进程管理工具 kill命令: 向进程发送控制信号,以实现对进程管理,每个信号对应一个数字,信号名称以SIG开头 (可省略),不区分大小写 显示当前系统可用信号: kill –l,trap -l 常用信号:man 7 signal 1) SIGHUP: 无须关闭进程而让其重读配置文件 2) SIGINT: 中止正在运行的进程;相当于Ctrl+c 3) SIGQ…

    Linux笔记 2018-05-06
  • 文件权限

    介绍了修改文件权限的方法,umask和三种特殊权限以及acl控制访问表

    2018-04-04