Nginx обслуживает 2 разных каталога с 2 разными URL
Я пытаюсь использовать nginx, чтобы он обслуживал две разные директории в разных местах моей файловой системы, используя два разных URL-адреса. Итак, учитывая наличие двух каталогов в моей файловой системе /path/to/dir1 и /path/to/dir2, я хочу, чтобы пользователи на моем веб-сайте могли иметь доступ к mysite / d1 и mysite / d2 и чтобы каждый из этих URL-адресов обслуживал dir1 и dir 2 соответственно. Вот что я попробовал:
server {
listen 80;
location /d1/ {
root /path/to/dir1;
autoindex on;
}
location /d2/ {
root /path/to/dir2;
autoindex on;
}
}
Я немного запутался, почему это не работает, потому что, когда я использую конфигурацию
server {
listen 80;
location / {
root /path/to/dir1;
autoindex on;
}
}
и перейдите на MySite / я могу получить доступ к DIR1, как ожидалось
1 ответ
Проблема заключается в добавлении запроса URI, когда вы используете root
location /d1/ {
root /path/to/dir1;
Это означает, что вы хотите искать файлы в /path/to/dir1/d1/
, Так что вам нужен псевдоним, потому что в случае псевдонима request_uri берется только после объявленного местоположения
server {
listen 80;
location /d1/ {
alias /path/to/dir1;
autoindex on;
}
location /d2/ {
alias /path/to/dir2;
autoindex on;
}
}