创建用户密码
- 安装
# Debian,Ubuntu
apt install apache2-utils
# RHEL / CentOS / Oracle Linux 安装 httpd-tools
- 创建用户
# 第一次创建需要带上 -c 参数
# 如果没有/etc/apache2目录可以先手动创建
sudo htpasswd -c /etc/apache2/.htpasswd user1
sudo htpasswd /etc/apache2/.htpasswd user2
3.查看生成的文件
dong@dong:~$ cat /etc/apache2/.htpasswd
user1:$apr1$tHDCn.3J$cb8PbjVEEgXyyg08Rd4TJ.
user2:$apr1$wiOGlgfd$lOyuwqBJL5weLXFMCXb040
配置nginx
修改nginx.conf
location / {
auth_basic "Administrator’s Area"; # 开启认证
auth_basic_user_file /etc/apache2/.htpasswd; # 上面指定的密码文件
root html;
index index.html index.htm;
}
重启
./nginx -s reload
访问
浏览器中打开 http://localhost/
配合IP使用
使用allow和deny允许或拒绝特定IP地址的访问
satisfy指令使用
- all 要同时满足ip和Authentication才可以访问
- any 只要满足一个条件就可以访问
实例
指定IP不用密码访问,其他IP需要使用密码
location / {
satisfy any; # 满足其中一个条件即可
allow 127.0.0.1; # 不用密码就可以直接访问
deny all; # 其他IP都需要密码访问
auth_basic "Administrator’s Area";
auth_basic_user_file /etc/apache2/.htpasswd;
root html;
index index.html index.htm;
}
指定IP和使用密码访问,其他的都不可以访问
location / {
satisfy all; # 需求满足以下两个条件
allow 127.0.0.1; # 只有127.0.0.1和提供密码才可以访问
deny all; # 其他IP都不能访问,直接返回403
auth_basic "Administrator’s Area";
auth_basic_user_file /etc/apache2/.htpasswd;
root html;
index index.html index.htm;
}
可以通过access.log查看访问的IP
tail -n 5 -f access.log
参考: