返回列表 发帖

Nginx用户验证

笺注:这是在 LNMP一键安装包(lnmp_CentOS6.9) 的基础上进行的。


Nginx的版本:
[root@localhost ~]# nginx -v
nginx version: nginx/1.10.0

[root@localhost ~]# nginx -V
nginx version: nginx/1.10.0
built by gcc 4.4.7 20120313 (Red Hat 4.4.7-23) (GCC)
built with OpenSSL 1.0.1e-fips 11 Feb 2013
TLS SNI support enabled
configure arguments: --user=www --group=www --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-http_v2_module --with-http_gzip_static_module --with-ipv6 --with-http_sub_module



先找到Nginx的主配置文件:
[root@localhost ~]# find / -name "nginx.conf"
/usr/local/nginx/conf/nginx.conf


查看Nginx的主配置文件:
[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
图片1.png
2021-2-28 16:25



默认站点的根目录:
图片2.png
2021-2-28 16:25



默认情况下,可以通过访问服务器IP地址的方式访问如下页面:
图片3.png
2021-2-28 16:25



还可以访问默认站点的根目录里的文件、子目录等等:
http://192.168.168.130/phpinfo.php
图片4.png
2021-2-28 16:26



http://192.168.168.130/phpmyadmin/
图片5.png
2021-2-28 16:26



http://192.168.168.130/nginx_status
图片6.png
2021-2-28 16:26




#########

给默认站点的根目录 /home/wwwroot/default/ 配置用户验证

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
加入以下代码:(只会针对本目录的默认首页、与其子目录的所有文件进行用户验证,但只需要验证一次即可;本目录里其他文件等却可以直接访问)
location /
{
auth_basic   "Auth";
auth_basic_user_file /usr/local/nginx/conf/zhuohua_http;
}
图片7.png
2021-2-28 16:27




创建认证数据文件:
[root@localhost ~]# htpasswd
-bash: htpasswd: command not found

[root@localhost ~]# yum -y install httpd

[root@localhost ~]# htpasswd -bc /usr/local/nginx/conf/zhuohua_http zhuohua 111
Adding password for user zhuohua

注释:
/usr/local/nginx/conf/zhuohua_http 为自定义的认证数据文件
zhuohua 为用户名
111 为用户密码

备注:
这命令也可以给用户更改密码。
认证数据文件可以在别的服务器上创建,再拿过来用的。


自定义的认证数据文件:(密码会加密)
图片1.png
2021-2-28 16:30



重启Nginx,使更改生效:
图片2.png
2021-2-28 16:30



客户端远程测试:
http://192.168.168.130/phpinfo.php
图片3.png
2021-2-28 16:30



http://192.168.168.130/nginx_status
图片4.png
2021-2-28 16:31




当客户端访问默认站点根目录就必须要输入对应的用户名和密码了,如下图:
http://192.168.168.130/
图片5.png
2021-2-28 16:31


图片6.png
2021-2-28 16:31



当客户端访问默认站点根目录下的子目录里的所有文件都必须要输入对应的用户名和密码,如下图:
http://192.168.168.130/phpmyadmin/
图片7.png
2021-2-28 16:32


图片8.png
2021-2-28 16:32


备注:
假如客户端在访问站点根目录时,已经输入对应的用户名和密码,并登录成功,那在访问子目录时就不用再次输入对应的用户名和密码,可以直接访问;

假如客户端在访问子目录时已经输入对应的用户名和密码,并登录成功,那在访问站点根目录时就不用再次输入对应的用户名和密码,可以直接访问;













#########

/nginx_status 单独配置用户验证

[root@localhost ~]# vi /usr/local/nginx/conf/nginx.conf
加入以下代码:(这与上面默认站点根目录的验证是分开的)
auth_basic   "Auth";
auth_basic_user_file /usr/local/nginx/conf/zhuohua_status;
图片9.png
2021-2-28 16:33


备注: /nginx_status 比较特殊,无需有真实目录或文件。


创建认证数据文件:
[root@localhost ~]# htpasswd -bc /usr/local/nginx/conf/zhuohua_status jacky 886
Adding password for user jacky


重启Nginx,使更改生效:
图片10.png
2021-2-28 16:33



重新访问 /nginx_status 就必须要输入对应的用户名和密码了,如下图:
http://192.168.168.130/nginx_status
图片11.png
2021-2-28 16:34


图片12.png
2021-2-28 16:34















#########

给虚拟主机的根目录配置用户验证

查找虚拟主机的配置文件:
[root@localhost ~]# find / -name "blog.zhuohua.store.conf"
/usr/local/nginx/conf/vhost/blog.zhuohua.store.conf

编辑虚拟主机的配置文件:
[root@localhost ~]# vi /usr/local/nginx/conf/vhost/blog.zhuohua.store.conf
加入以下代码:
location /
{
auth_basic   "Welcome to zhuohua";
auth_basic_user_file /usr/local/nginx/conf/zhuohua_auth1;
}
图片13.png
2021-2-28 16:36



创建认证数据文件:
[root@localhost ~]# htpasswd -bc /usr/local/nginx/conf/zhuohua_auth1 zhuohua1 1234
Adding password for user zhuohua1


重启Nginx,使更改生效:
图片14.png
2021-2-28 16:36



创建测试的网页文件:
echo 'This is root.' > /home/wwwroot/blog.zhuohua.store/index.html
echo 'This is 1.html' > /home/wwwroot/blog.zhuohua.store/1.html


测试:(虚拟主机的根目录的所有文件都需要验证的,但只需要验证一次即可)

http://blog.zhuohua.store
图片15.png
2021-2-28 16:37


http://blog.zhuohua.store/1.html
图片16.png
2021-2-28 16:37



图片17.png
2021-2-28 16:37


图片18.png
2021-2-28 16:38















#########

给虚拟主机的子目录配置用户验证

编辑虚拟主机的配置文件:
[root@localhost ~]# vi /usr/local/nginx/conf/vhost/blog.zhuohua.store.conf
加入以下代码:
location /dir1
{
auth_basic   "Auth for zhuohua";
auth_basic_user_file /usr/local/nginx/conf/zhuohua_auth2;
}
图片19.png
2021-2-28 16:38



创建认证数据文件:
[root@localhost ~]# htpasswd -bc /usr/local/nginx/conf/zhuohua_auth2 zhuohua2 12345
Adding password for user zhuohua2


重启Nginx,使更改生效:
图片20.png
2021-2-28 16:39



创建测试的目录和网页文件:
mkdir -p /home/wwwroot/blog.zhuohua.store/dir1
echo 'This is dir1' > /home/wwwroot/blog.zhuohua.store/dir1/index.html
echo 'This is dir1/2.html' > /home/wwwroot/blog.zhuohua.store/dir1/2.html


测试:(虚拟主机的子目录的所有文件都需要验证的,但只需要验证一次即可)

http://blog.zhuohua.store/dir1/
图片21.png
2021-2-28 16:40


http://blog.zhuohua.store/dir1/2.html
图片22.png
2021-2-28 16:40



图片23.png
2021-2-28 16:40


图片24.png
2021-2-28 16:40






相关文章:
Nginx基于域名的虚拟主机/域名重定向/访问控制/防盗链/SSL
Nginx的并发连接数

Windows2012R2_UPUPW_Nginx_域名重定向+用户验证+访问控制+SSL

CentOS6_Nginx反向代理+负载均衡(轮询)
CentOS8_Nginx基于域名的虚拟主机+代理虚拟主机

Apache2.2基于域名的虚拟主机+用户授权限制+客户端地址限制
Apache2.4基于域名的虚拟主机+用户授权限制+客户端地址限制

返回列表