为 Nginx 创建 .htaccess 文件以控制目录访问权限

共享的目录中,有的内容不适合公开,所以我们就要做一个用户验证来让该目录只能被授权的用户访问。

OS: Ubuntu 16.04

第一步

方法一

首先安装 apache2-utils 用以创建 .htaccess 文件 (如果你不想用Apache的东西生成,请跳到 方法二)
sudo apt-get install apache2-utils

安装成功后执行
htpasswd -c /usr/local/nginx/conf/vhost/.htaccess [username]
在这里注意将文件位置及用户名改成你想要的,回车以后会让输入密码并确认,完成后就生成了我们需要的 .htaccess 文件辣w

方法二

首先创建认证文件
sudo sh -c "echo -n '[username]:' >> /usr/local/nginx/conf/vhost/.htpasswd"
注意把 [username] 替换成你想要的用户名

然后用 openssl 生成密码
sudo sh -c "openssl passwd -apr1 >> /usr/local/nginx/conf/vhost/.htpasswd"
回车以后会让输入密码并确认。

第二步

接下来打开 Nginx Vhost 配置文件,并在文件内加入

location /baka/
{
auth_basic "Nyaa~";
#如果你用的是方法二,请把 .htaccess 换成 .htpasswd
auth_basic_user_file /usr/local/nginx/conf/vhost/.htaccess;
}

注意将 location 后面的目录, 成你想要设置认证的目录, auth_basic_user_file 为之前生成 .htaccess (.htpasswd) 文件的位置。

保存配置文件,重启nginx
service nginx restart

嗯,就是这样了。

参考资料:How To Set Up Password Authentication with Nginx on Ubuntu 14.04

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注