Mrfei 发表于 2018-11-11 10:58:58

详解Nginx两种方式实现访问控制

简介
  基于用户的访问控制就是对网页目录进行认证配置,用户输入用户名密码之后才能访问网页
  基于IP的访问控制即使可以通过配置基于ip的访问控制,达到让某些ip能够访问,限制哪些ip不能访问的效果
实验环境

[*]系统环境:CentOS7.4
[*]服务器IP地址:192.168.100.71
[*]客户端IP地址:192.168.100.72
[*]yum挂载目录:/mnt/sr0
[*]相关源码包下载地址:百度云下载   密码:uhzm
搭建步骤
一、准备工作
1、关闭防火墙及selinux
  # systemctl stop firewalld.service #关闭防火墙
  # systemctl disable firewalld.service #随开机自动关闭
  # vim /etc/sysconfig/selinux

  # reboot #重启Linux生效
二、搭建Nginx服务
1、安装相应的工具包以及C语言编译器
  # yum -y install pcre-devel zlib-devel gcc gcc-c++
2、创建Nginx进程用户
  # useradd -M -s /sbin/nologin nginx
3、配置、编译及编译安装Nginx源码包
  # tar xvf nginx-1.12.0.tar.gz -C /usr/src/
  # cd /usr/src/nginx-1.12.0/
  # ./configure \
  --prefix=/usr/local/nginx \
  --user=nginx \
  --group=nginx
参数解析:
  prefix      #指定安装位置
  user=nginx    #指定nginx系统用户
  group=nginx   #指定组
  # make && make install
4、优化路径
  # ln -s /usr/local/nginx/sbin/* /usr/local/sbin/
三、设置Nginx运行控制
1、检测语法
  # nginx -t #测试配置是否有语法错误

2、启动Nginx服务
  # vim /usr/local/nginx/conf/nginx.conf #修改主配置文件

  # nginx#启动Nginx
  # netstat -anpt | grep ":80" #检测服务是否启动
  # cat /usr/local/nginx/logs/nginx.pid #查看pid

3、停止Nginx服务

  # kill -1 3809#平滑重启Nginx服务。相当于killall -s HUP nginx;nginx -s>  # kill -3 1514#关闭Nginx服务。相当于killall -s QUIT nginx;nginx -s quit
  # nginx #重启服务
  # cat /usr/local/nginx/logs/nginx.pid #查看pid号

4、编辑Nginx服务脚本
  # vim /lib/systemd/system/nginx.service

  Description=Nginx Server Control Script      #说明
  After=network.target                           #描述服务类别

  Type=forking                                 #后台运行形式
  PIDFile=/usr/local/nginx/logs/nginx.pid      #PID文件位置
  ExecStart=/usr/local/nginx/sbin/nginx          #启动服务
  ExecReload=/usr/bin/kill -s HUP $PIDFile       #重载服务
  ExecStop=/usr/bin/kill -s QUIT $PIDFile      #停止服务

  WanteBy=multi-user.target
  # systemctl daemon-reload #重新加载服务单元
  # systemctl enable nginx.service #设置开机自启动
  # systemctl stop nginx.service#停止服务
  # systemctl start nginx.service#开启服务

  # systemctl>  # systemctl restart nginx.service#重启服务
四、设置基于授权的访问控制
1、生成用户密码认证文件
  # htpasswd -c /usr/local/nginx/passwd.db tom
  htpasswd在最开始编译安装的时候已经安装好htpasswd,用来创建授权用户数据文件,并维护其中的用户账号;
  c代表create创建密码认证文件;
  tom是认证文件中的用户名
  # cat /usr/local/nginx/passwd.db #查看密码文件

2、修改密码认证文件权限以及所有者
  # chmod 400 /usr/local/nginx/passwd.db
  # chown nginx /usr/local/nginx/passwd.db
3、修改主配置文件
  # vim /usr/local/nginx/conf/nginx.conf

4、重启Nginx服务
  # nginx -t

  # systemctl restart nginx.service #重启服务
5、访问测试


五、设置基于客户端的访问控制
1、修改主配置文件
  # vim /usr/local/nginx/conf/nginx.conf

2、重启Nginx服务
  # nginx -t

  # systemctl restart nginx.service
3、访问测试


页: [1]
查看完整版本: 详解Nginx两种方式实现访问控制