Как настроить nginx на раздачу 2ух разных папок со статикой по разным url?
Всем привет!
Есть 2 папки с сайтами /site1 и /site2
-Если мы на домашней странице site.com/, nginx должен отдавать index.html и всю статику с папки /site1
-Если мы не на домашней (например site.com/some), то nginx должен отдавать index.html и статику с папки /site2
Пытался сделать через связку root и "location = /" с "location /", но при таком конфиге всегда отдаётся /site2 :
server {
server_name site.com;
location = / {
root /home/site1;
index index.html;
try_files $uri /index.html;
}
location / {
root /home/site2;
index index.html;
try_files $uri /index.html;
}
}
Кажется это как-то связано с тем, что из-за директивы "index index.html", мы никогда не попадаем на чистый "location = /". Но в таком случае тоже не понятно как поступить
Заранее спасибо
--- UPD
Уточнение, например, если у меня такая структура файлов:
/site1
index.html
main.js
main.css
/site2
index.html
othername.js
main.css
То когда пользователь заходит на site.ru/ ему должен отдаваться сайт с папки site1/ (это gatsby сайт)
А если любой другой урл, например site.ru/abc, то должен отдаваться уже сайт с паки site2/ (это react сайт)
Ответы (1 шт):
Автор я не уверен, что правильно тебя понял. В качестве костыля можно сначала чекнуть есть ли запрашиваемый файл в site1, если нет то ищем в site2
server {
server_name site.com;
location @site2 {
root /home/site2;
index index.html;
try_files $uri /index.html;
}
location / {
root /home/site1;
index index.html;
try_files $uri /index.html @site2;
}
}