nginx进阶
目录
访问控制
权限控制指令
Nginx中提供了两个用于配置访问权限控制的指令,分别为allow和deny。从其名称就可以看出,allow用于设置允许访问的权限、deny用于设置禁止访问的权限。在使用时,权限指令后只需要跟上允许或禁止的ip、ip段或all即可。其中,all表示所有的。
单个ip指定的范围最小,all指定的范围最大
同一块下,若同时存在多个权限指令(deny、allow),则先出现的访问权限设置生效,并且会对后出现的设置进行覆盖,未覆盖的范围以然生效,否则以先出现的设置为准
当多个块(如http、server、location)中都出现了权限设置指令,则内层块中的权限级别要比外层块中设置的权限级别高
用于location段
allow:设定允许哪台或哪些主机访问,多个参数间用空格隔开
deny:设定禁止哪台或哪些主机访问,多个参数间用空格隔开
location / {
stub_status on;
allow 192.168.40.1;
deny all;
}
用户认证
auth_basic “欢迎信息”;
auth_basic_user_file “/path/to/user_auth_file”;
//user_auth_file内容格式
username:password
这里的密码为加密后的密码串,建议用htpasswd来创建文件
htpasswd -c -m /path/to/.user_auth_file USERNAME
配置实例
//授权用户
//安装httpd-tools软件包
[root@nginx ~]# yum -y install httpd-tools
//创建用户密钥文件
[root@nginx ~]# cd /usr/local/nginx/conf/
[root@nginx nginx]# htpasswd -c -m .user_auth_file niuma
New password:
Re-type new password:
Adding password for user niuma
[root@nginx nginx]#
[root@nginx nginx]# cat .user_auth_file
niuma:$apr1$C/alc5Ab$m4waqGTDkdCe9k5Bzfcf61
//配置nginx(注意auth_basic_user_file必须用绝对路径)
[root@nginx conf]# vim nginx.conf
location /status {
stub_st