主机迷主机迷

nginx配置basic认证保护网站后台地址

有时候为了安全,希望可以在访问wordpress、typecho等博客网站后台地址的时候,增加一道认证,要先输入用户名和密码,这时候可以使用nginx的basic认证。

利用apache所带的密码生成工具htpasswd

/usr/bin/htpasswd  -c /usr/local/nginx/conf/vhost/domain.com.pass  user

/usr/bin/htpasswd -nb user passwd

然后将生成的内容复制到domain.com.pass。

以下的配置可以保护admin目录下的所有文件。如果你只设了/admin/,那么直接输入/admin/index.php还是可以访问的。

location ~ ^/admin/.* {
    auth_basic "auth";
    auth_basic_user_file /usr/local/nginx/conf/vhost/domain.com.pass;
}

location ~ /admin(/.*) {
    auth_basic "auth";
    auth_basic_user_file /usr/local/nginx/conf/vhost/domain.com.pass;
}

以下的写法不行,basic认证通过后访问后台网页会直接下载。

location ^~ /admin/ {
   auth_basic "auth";
   auth_basic_user_file /usr/local/nginx/conf/vhost/domain.com.pass;
}

注意wordpress的/wp-admin和/wp-login.php都需要保护。

除了某个文件以外,其他内容都启用HTTP基本验证的例子:

location = /test {
       auth_basic off;
       allow all; 
}
转载请注明出处 | 当前页面:主机迷 » nginx配置basic认证保护网站后台地址

评论

  • 请输入 7 + 8 = ? 的计算结果: