我试图设置一个nginx服务器来取代我们基于Apache的当前设置。 我们的用户拥有密码保护的目录(在.htaccess文件中有指令),我们需要在新的设置中保护它们。
据我所见,nginx没有Directory指令,只有一个Location指令,指向URI而不是文件系统path。 这意味着如果一个目录可以通过多个URL访问。 我必须将它们全部包含在一个或多个位置指令中。 例如:
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 sub.domain.com /sub/admin和domain.com中的/sub/admin都受到保护相同的密码文件。 我宁愿保护目录本身,而不是通过访问者访问其内容的URL。
那么,nginx是否有任何机制允许在configuration文件中引用文件系统path,比如Apache的<Directory>块呢,或者我只是误读了nginx的文档?
在nginx中没有这样的机制。 我通常为不同的主机设置不同的目录:
domain.com, root: /home/user/sites/domain.com sub.domain.com, root: /home/user/sites/sub.domain.com
这简化了(nginx)configuration。