在Nginx中,你可以使用HTTP基本认证来对某个目录设置密码保护,以下是一个示例配置,假设你要保护的目录是/protected
:
1、你需要创建一个密码文件,可以使用htpasswd
工具来生成这个文件,如果你没有安装apache2utils
(包含htpasswd
工具),可以通过包管理器安装它,在Debian/Ubuntu系统上,可以运行:
sudo aptget install apache2utils
2、使用htpasswd
命令创建密码文件,创建一个名为.htpasswd
的文件:
sudo htpasswd c /etc/nginx/.htpasswd username
这里username
是你希望用来登录的用户名称,你会被提示输入并确认密码。
3、编辑你的 Nginx 配置文件(通常位于/etc/nginx/nginx.conf
或/etc/nginx/sitesavailable/default
),添加以下内容以启用基本认证:
server { listen 80; server_name your_domain.com; location /protected { auth_basic "Restricted Area"; auth_basic_user_file /etc/nginx/.htpasswd; } location / { try_files $uri $uri/ =404; } }
在这个配置中:
auth_basic "Restricted Area";
设置了基本认证的提示信息。
auth_basic_user_file /etc/nginx/.htpasswd;
指定了存储用户名和密码的文件路径。
4、保存配置文件并测试 Nginx 配置是否正确:
sudo nginx t
5、如果测试通过,重新加载 Nginx 服务以应用更改:
sudo systemctl reload nginx
当你访问http://your_domain.com/protected
时,浏览器会提示你输入用户名和密码,只有输入正确的凭据后,才能访问该目录的内容。