Nginx通过htpasswd保护目录

某些目录不想直接被公网访问,又不能墙掉端口,所以通过给某个目录增加访问密码的方式进行安全控制。

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;

}

 

本文链接地址: https://danteng.org/nginx-htpasswd/