我试图用多层的Nginx设置基本的HTTPauthentication。 我想有一个整个网站的用户名和密码,除了一个特定的子目录(URL)和一个单独的用户名和密码的子目录。 如果有人导航到该子目录,我希望它们仅提示子目录特定的凭据,而不是为站点根。
我如何设置?
参考: http : //nginx.org/en/docs/http/ngx_http_auth_basic_module.html
假设子目录url是http://www.example.com/admin/ 。
第1步:使用htpasswd
创建2个存储用户名/密码(加密)对的文件
# to secure the admin site htpasswd -bc /tmp/admin_passwd.txt admin adminpassword # to secure the main site htpasswd -bc /tmp/site_passwd.txt user userpassword
第2步:设置你的nginx配置:
server { listen 80; server_name www.example.com; root /tmp/www; location ^~ /admin/ { auth_basic "secured site admin"; auth_basic_user_file /tmp/admin_passwd.txt; } location / { auth_basic "secured site"; auth_basic_user_file /tmp/site_passwd.txt; } }