Nginx 访问控制 (Basic Auth) 设置备忘
本文档记录了如何通过 Nginx 为 VitePress 的特定路径(如 /Personal)设置访问权限控制。
1. 生成加密密码文件
使用 htpasswd 工具生成密码文件。用户指定的路径为 /etc/nginx/.htpasswd_wayne。
bash
# 如果未安装工具,先安装
sudo apt update
sudo apt install apache2-utils
# 创建密码文件并添加用户(例如用户名为 wayne)
# -c 参数表示创建新文件,如果文件已存在且想追加用户,请去掉 -c
sudo htpasswd -c /etc/nginx/.htpasswd_wayne wayne2. Nginx 配置文件修改
在 Nginx 的 server 配置块中,添加针对特定路径的 location 块。
nginx
server {
# ... 其他配置 (listen, server_name, root等) ...
# 保护 /Personal 路径
location /Personal {
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd_wayne;
# 兼容 VitePress 的 cleanUrls 路由规则
try_files $uri $uri.html $uri/ =404;
}
# 默认路径配置(建议也支持 cleanUrls)
location / {
try_files $uri $uri.html $uri/ =404;
}
}3. 生效配置
修改完成后,务必检查语法并重载 Nginx。
bash
# 检查语法
sudo nginx -t
# 重载服务
sudo systemctl reload nginx4. 注意事项
- 安全性:HTTP Basic Auth 在非 HTTPS 环境下是不安全的(明文传输)。强烈建议配合 SSL 证书使用。
- 追加用户:如果需要给多个人权限,使用
sudo htpasswd /etc/nginx/.htpasswd_wayne username(不带-c)。 - 文件权限:确保 Nginx 运行用户(通常是
www-data)对.htpasswd_wayne文件有读取权限。