通过用户名/密码限制对文件夹的访问(nginx)

通过用户名/密码限制对文件夹的访问(nginx)

我已经烧毁了旧服务器,现在正尝试在新服务器(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。

相关内容