我已经烧毁了旧服务器,现在正尝试在新服务器(Ubuntu 22.04)上重新安装我的域。我记得以下代码(nginx)曾经用于限制管理员文件夹 - 只是额外的安全层。但是在新服务器上,输入用户/密码后,它会显示 404 错误页面。没有文件丢失。
location /admin {
try_files $uri $uri/ =404;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/.htpasswd;
}
所以问题是,如何在新服务器上实现这一点?我想要的是使用存储在 /etc/nginx/.htpasswd 文件中的用户名/密码来限制 admin 文件夹。
如果重要的话,则没有存储错误日志。
答案1
尝试这个:
创建 .htpasswd 文件:您可以使用 htpasswd 命令创建或更新 .htpasswd 文件:
sudo htpasswd -c /etc/nginx/.htpasswd 用户名
将用户名替换为所需的用户名。系统将提示您输入并确认此用户的密码。如果您稍后添加更多用户,请省略 -c 标志以避免覆盖文件。
配置 Nginx 使用 .htpasswd 文件进行身份验证:编辑 Nginx 服务器配置文件,该文件通常位于 /etc/nginx/nginx.conf 或 /etc/nginx/conf.d/ 中的单独文件中。在服务器块中添加或修改以下部分:
location /admin {
auth_basic "Restricted Access";
auth_basic_user_file /etc/nginx/.htpasswd;
# Additional configuration for the /admin location if needed
}
此配置限制对 /admin URL 的访问并使用 .htpasswd 文件进行身份验证。
测试 Nginx 配置:在重新加载 Nginx 之前,测试配置以捕获任何语法错误:
sudo nginx -t
现在,当您在 Web 浏览器中访问 /admin URL 时,Nginx 将提示您输入用户名和密码。
请记住通过限制 Nginx 用户和组的权限来保护您的 .htpasswd 文件,以防止未经授权的访问:
sudo chown www-data:www-data /etc/nginx/.htpasswd sudo chmod 600
/etc/nginx/.htpasswd
如果您的系统上 www-data 不同,请用适当的 Nginx 用户和组替换 www-data。