这次阿航需要为公司的某网站开启远程访问, 但是仅允许公司内部员工使用. 本篇文章就来记录下如何为Nginx 设置密码/开启密码验证/需用户名密码才能访问.
效果
有图有真相, 我们最终要实现的效果如下:
用户名与密码输入正确
尝试匿名访问
前置条件
- 掌握Nginx基础.
- 掌握bash/shell的基本命令.
本篇文章的环境:
实战开始
安装生成账号密码工具
`yum install httpd-tools`
[epcl_box type=“notice”]如果yum下载过慢, 请阅读这篇文章 开启加速.[/epcl_box]
如果提示Is this ok [y/d/N]:
, 输入y
并点击回车.
生成账号密码
输入以下命令, 生成账号密码文件:
`htpasswd -bc 文件路径 用户名 密码`
比如:
`htpasswd -bc /usr/root.db root 123456`
为nginx配置账号密码校验
进入nginx配置文件. 找到你要添加账号密码验证的server
. 为其添加两行代码:
`server { listen 80; server_name hello.com; auth_basic "Please enter password"; # 密码提示 auth_basic_user_file /usr/root.db; # 填写上面你生成的账户密码文件路径 location / { root /usr/share/nginx/html; index index.html index.htm; } }`
重启nginx(两种方式, 按需选择):
`nginx -s reload`
或
`service nginx restart`
🟢 重启完成后, 访问你的链接. 应该会有如下效果:
效果-输入正确
效果-不输入密码
重新验证
目前阿航仅知道清除浏览器缓存(CTRL
+SHIFT
+DEL
)后, 可重新登录. 若同学们知道其他方法, 欢迎在下方评论区进行讨论.
感谢
- nginx 使用密码认证
- Pexels 上的 Bich Tran 拍摄的图片