nginx - 如何管理私有目录

nginx - 如何管理私有目录

这是一个非常基本的问题,但我找不到任何关于如何设置的文档。我有一个基本的 nginx 个人 Web 服务器设置,它几乎是开箱即用的。我想托管一个使用我想隐藏的数据库的页面。设置私有目录来存储敏感信息的最佳方法是什么,是该页面的私有子目录,还是公共托管之外的更站点范围的目录。

答案1

location您可以在 中使用 HTTP 基本身份验证指令,使子目录需要用户名和密码nginx.conf。如果没有用户名或密码,您将无法访问该目录。

最好事先在您的网站上运行 TLS,因为如果您的网站未加密,那么有人就可以看到您的用户名/密码。

您将需要htpasswd安装该程序。在某些发行版中,包含该程序的软件包名为apache2-utils,在其他发行版中则为httpd-tools。将其替换username为您想要的用户名。它将提示您输入密码。

htpasswd -c /etc/nginx/htpasswd username
  • 可以通过使用备用用户名重复该命令来创建多个用户。

然后,在nginx.conf服务器块内的文件中,添加下面的位置指令,将其替换/privatedir为您要保护的目录,并将Private Directory其替换为您想要在登录提示符下显示的消息:

location /privatedir {
    auth_basic "Private Directory";
    auth_basic_user_file /etc/nginx/htpasswd;
}

重新启动nginx,如上例所示,您的目录/privatedir将需要用户名和密码才能访问。如果没有提供,或者用户名和密码无效,它将给出 HTTP 401 未授权消息。

有关 HTTP 基本身份验证的更多信息,请务必检查nginx 的文档

相关内容