Я пытаюсь настроить сервер 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
в sub.domain.com
и /sub/admin
в domain.com
защищены одним файлом паролей. Я бы предпочел защитить сам каталог, а не URL-адреса, по которым посетители могут получить доступ к его содержимому.
Итак, есть ли у nginx какой-либо механизм, который позволяет ссылаться на пути файловой системы в файлах конфигурации, например, в Apache <Directory>
блоки делают - а может я просто неправильно читаю документацию nginx?
В nginx такого механизма нет. Я обычно устанавливаю разные каталоги для разных хостов:
domain.com, root: /home/user/sites/domain.com
sub.domain.com, root: /home/user/sites/sub.domain.com
что упрощает настройку (nginx).