某些目录不想直接被公网访问,又不能墙掉端口,所以通过给某个目录增加访问密码的方式进行安全控制。
1,生成密码文件,生成完毕后须将其属主改为nginx运行用户
htpasswd -bdc /data/web/htpasswd username password
2,被保护的目录增加一段location,指定密码文件
location ^~ /auth/{
auth_basic “Authorized users only”;
auth_basic_user_file /data/web/htpasswd;
}
3,如果该目录下有php程序,php程序将变成下载而非执行,需修改上面的location配置,增加php-fpm配置。
location ^~ /auth/{
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
auth_basic “Authorized users only”;
auth_basic_user_file /data/web/htpasswd;
}