使用htpasswd实现Nginx验证访问
Nginx 实现 访问 验证 使用
2023-09-14 09:12:24 时间
Nginx是一个高性能的WEB服务器,越来越多的用户使用,如果您的某个站点不希望对外公开(比如PHPMyAdmin),可以使用htpasswd实现Nginx验证访问。
安装htpasswd
htpasswd是Apache密码生成工具,Nginx支持auth_basic认证,因此我门可以将生成的密码用于Nginx中,输入一行命令即可安装:
1
|
yum - y install httpd - tools |
参数如下:
1
2
3
4
5
6
7
8
|
- c 创建passwdfile.如果passwdfile 已经存在,那么它会重新写入并删去原有内容. - n 不更新passwordfile,直接显示密码 - m 使用MD5加密(默认) - d 使用CRYPT加密(默认) - p 使用普通文本格式的密码 - s 使用SHA加密 - b 命令行中一并输入用户名和密码而不是根据提示输入密码,可以看见明文,不需要交互 - D 删除指定的用户 |
生成密码
1
2
3
4
5
|
#进入home目录 cd / home #生成密码 htpasswd - c . / passwd username #执行上命令后会要求输入两次密码,./passwd 是在当前目录下创建密码文件passwd ,username即为需要设置的账号 |
如果你不想安装htpasswd,也可以通过在线 htpasswd 生成器来完成。
载入配置
接下来在Nginx配置文件中(通常是server段内),加入如下两行,并重载Nginx(service nginx reload
)即可生效。
1
2
|
auth_basic "Please input password" ; #这里是验证时的提示信息 auth_basic_user_file / home / passwd; |
访问测试
再访问站点,提示需要输入用户名和密码才可以访问,此方法适合不宜公开的站点,比如PHPmyadmin,这样可避免被弱口令扫描,无疑再上了一把锁。
实例
利用htpasswd命令添加用户
1
|
htpasswd - bc .passwd www.linuxde.net php |
在bin目录下生成一个.passwd文件,用户名www.linuxde.net,密码:php,默认采用MD5加密方式。
在原有密码文件中增加下一个用户
1
|
htpasswd - b .passwd Jack 123456 |
去掉-c
选项,即可在第一个用户之后添加第二个用户,依此类推。
不更新密码文件,只显示加密后的用户名和密码
1
|
htpasswd - nb Jack 123456 |
不更新.passwd文件,只在屏幕上输出用户名和经过加密后的密码。
利用htpasswd命令删除用户名和密码
1
|
htpasswd - D .passwd Jack |
利用htpasswd命令修改密码
1
2
|
htpasswd - D .passwd Jack htpasswd - b .passwd Jack 123456 |
即先使用htpasswd删除命令删除指定用户,再利用htpasswd添加用户命令创建用户即可实现修改密码的功能。
实际样例如下:
nginx配置:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
server { listen 80 ; server_name kba.sche.cn; access_log / home / logs / nginx / kba.sche.cn / access_log main; error_log / home / logs / nginx / kba.sche.cn / error_log; log_not_found on; include conf / * .conf; location / { proxy_pass http: / / 192.168 . 1.125 : 500 ; auth_basic "Basic Authentication" ; auth_basic_user_file "/home/nginx/htpasswd/kba.htpasswd" ; } } |
生成密码
1
2
3
4
5
6
|
创建密码文件并新增用户 htpasswd - c / home / / nginx / htpasswd / kba.htpasswd tom 回车提示输入两次设置的密码 新增其他用户,默认加密策略 htpasswd - b / home / nginx / htpasswd / kba.htpasswd jack Jk123 |
重启nginx 即可。
相关文章
- Nginx服务配置篇·第二课:Wordpress部署安装
- 第三章·Nginx实现基础Web架构
- nginx相关面试题_结构化面试题库及答案
- nginx实现tomcat动静分离详解
- 无需CORS,用nginx解决跨域问题,轻松实现低代码开发的前后端分离
- 24-Nginx高可用(基于Keepalived实现双主热备)
- 9.Nginx实践之使用MaxMind的GeoIP2实现处理不同国家或城市的访问最佳实践指南
- 35·灵魂前端工程师养成-使用nodejs实现简单nginx功能
- nginx配置跨域访问,无法生效_页面跨域访问
- 高并发解决方案-代理服务器Nginx[通俗易懂]
- 使用Nginx服务器实现动静分离和反向代理
- Nginx出现504 Gateway Time-out的解决方案
- Nginx实现崩溃重启
- 利用nginx实现负载均衡详解程序员
- Nginx的nginx.conf配置文件中文注释说明详解程序员
- Linux下如何安全删除Nginx(linux删除nginx)
- Linux中如何快速删除Nginx(linux删除nginx)
- Linux下Nginx实现快速高效的网络服务(linux的nginx)
- Nginx网站架构实战——15、nginx实现负载均衡
- 《Nginx官方文档》如何安装nginx
- nginx基于tcp做负载均衡的方法
- Nginx+SSL+Node.js运行环境配置教程