一、启用HTTP_STUB_STATUS状态统计模块
-
配置编译参数时候要添加–with-http_stub_status_module
-
nginx-V查看已安装的Nginx是否包含HTTP_STUB_STATUS模块
-
配置步骤
1、上传软件包到服务器/opt目录下,解压缩安装包
[root@localhost opt]# tar zxvf nginx-1.12.2.tar.gz
2、安装服务所必须依赖的软件包
[root@localhost opt]# yum -y install gcc gcc-c++ zlib-devel pcre pcre-devel
3、进入nginx软件目录进行编译安装前配置
[root@localhost opt]# cd nginx-1.12.2/ ## 进入软件目录
执行以下命令进行配置:
./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module
4、编译、安装
[root@localhost nginx-1.12.2]# make && make install
5、创建nginx程序用户
[root@localhost nginx-1.12.2]# useradd -M -s /sbin/nologin nginx
6、建立软链接,使nginx中的命令为系统所管理
扫描二维码关注公众号,回复:
11611777 查看本文章
[root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/nginx /usr/local/bin/
7、修改nginx配置文件
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf ## 编辑配置文件
添加如下内容:
location /status {
stub_status on;
access_log off;
}
8、开启nginx服务
[root@localhost nginx-1.12.2]# nginx
9、在浏览器中输入地址进行访问统计页面
http://192.168.50.134/status ## IP地址根据实际情况进行替换
每访问(或刷新)一次页面,计数器就会加一
二、基于授权的访问控制
- 原理跟Apache的访问控制配置类似,这里就不再赘述,下面直接开始配置:
1、安装http服务(因为生成认证文件需要用到http服务中的htpasswd工具)
[root@localhost nginx-1.12.2]# yum -y install httpd
2、使用htpasswd工具创建认证文件
[root@localhost nginx-1.12.2]# htpasswd -c /usr/local/nginx/passwd admin ## 创建认证文件,用户名为admin,创建路径为/usr/local/nginx,文件名为passwd
New password: ## 输入密码
Re-type new password: ## 确认密码
Adding password for user admin ## 密码创建成功
3、修改认证文件的属主
[root@localhost nginx-1.12.2]# chown nginx /usr/local/nginx/passwd
4、修改认证文件权限
[root@localhost nginx-1.12.2]# chmod 400 /usr/local/nginx/passwd
5、编辑nginx配置文件
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf
## 在虚拟主机的location字段中添加如下两行:
auth_basic "secret";
auth_basic_user_file /usr/local/nginx/passwd;
6、打开浏览器,清除缓存并重启,输入192.168.50.134进行访问
只要输入之前用htpasswd工具生成的用户名和密码就可以登录正常访问页面了
三、基于客户端IP实现访问控制
1、修改nginx配置文件,在虚拟主机中添加拒绝地址名单
[root@localhost nginx-1.12.2]# vim /usr/local/nginx/conf/nginx.conf ## 编辑配置文件
server {
server_name 192.168.50.134;
location / {
deny 192.168.50.136; ## 拒绝IP地址为192.168.50.136地址的主机访问
allow all; ## 允许其他所有主机访问
root /var/www/test;
index index.html index.php;
}
}
2、重启nginx服务
[root@localhost conf]# systemctl restart nginx
3、使用客户机(IP:192.168.50.136)进行访问,打开浏览器,清空缓存后重启,访问192.168.50.134
从看出已经不能访问了