Aquova Asked: 2020-04-09 14:24:55 +0800 CST2020-04-09 14:24:55 +0800 CST 2020-04-09 14:24:55 +0800 CST nginx - 如何管理私有目录 772 这是一个非常基本的问题,但我找不到任何关于如何设置它的文档。我有一个基本的 nginx 个人网络服务器设置,它几乎是开箱即用的。我想托管一个使用我想隐藏的数据库的页面。设置私有目录来存储敏感信息的最佳方式是什么,要么是该页面的私有子目录,要么是公共托管之外的更多站点范围的目录。 nginx private 1 个回答 Voted Best Answer gnuuu 2020-04-09T17:51:11+08:002020-04-09T17:51:11+08:00 您可以通过使用 HTTP 基本身份验证location在您的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 Unauthorized 消息。 有关 HTTP 基本身份验证的更多信息,请务必查看nginx 的文档
您可以通过使用 HTTP 基本身份验证
location
在您的nginx.conf
. 如果没有用户名或密码,您将无法访问该目录。最好让 TLS 事先在您的站点上运行,因为如果您的站点未加密,那么有人可能会看到您的用户名/密码。
您将需要
htpasswd
安装该程序。在某些发行版中,包含它的包被称为apache2-utils
,而在其他发行版中,它是httpd-tools
。替换username
为您想要的用户名。它会提示您输入密码。然后,在您
nginx.conf
的服务器块内的文件中,添加下面的位置指令,替换/privatedir
为您希望保护的目录,以及Private Directory
您希望在登录提示中显示的消息:重新启动
nginx
,您的目录/privatedir
(如上例所示)将需要用户名和密码才能访问。如果没有给出,或者它不是有效的用户名和密码,它将给出一个 HTTP 401 Unauthorized 消息。有关 HTTP 基本身份验证的更多信息,请务必查看nginx 的文档