我正在尝试设置一个 nginx 服务器来替换我们当前基于 Apache 的设置。我们的用户有受密码保护的目录(使用 .htaccess 文件中的指令),我们需要在新设置中保护这些目录。
据我所知,nginx 没有 Directory 指令,只有 Location 指令,它引用的是 URI,而不是文件系统路径。这意味着如果可以通过多个 URL 访问目录,我必须将它们全部包含在一个或多个 Location 指令中。例如:
domain.com, root: /home/user/public_html
sub.domain.com, root: /home/user/public_html/sub
如果用户保护sub.domain.com/admin
(目录/home/user/public_html/sub/admin
),我必须确保/admin
insub.domain.com
和/sub/admin
in都domain.com
使用相同的密码文件进行保护。我宁愿保护目录本身,而不是访问者可以访问其内容的 URL。
那么,nginx 是否有任何机制允许在配置文件中引用文件系统路径,就像 Apache 的<Directory>
块一样 - 或者也许我只是误读了 nginx 的文档?
答案1
nginx 没有这样的机制,我一般会针对不同的主机设置不同的目录:
domain.com, root: /home/user/sites/domain.com
sub.domain.com, root: /home/user/sites/sub.domain.com
这简化了(nginx)配置。