devpav
@devpav
Full-Stack разработчик.

Как сделать правильный редирект в Nginx с разными SPA index.html?

Что-то с редиректами интересное. Хочу редирект на статику SPA приложения. Есть две статики /home/html/index.html, /home/html/admin/index.html.

Location /api {
proxy_pass $backend_url;
}

Location /ws {
proxy_pass $backend_url;
}

Location /interview {
root /home/html/;
try_files $url /index.html;
}

Location / {
root /home/html/admin/;
try_files $url /index.html;
}

Мне необходимо такое поведение в браузере:

host.com/rooms - /home/html/admin/index.html
host.com/interview - /home/html/index.html
host.com/questions - /home/html/admin/index.html
host.com/ws - $backend_url/ws

По факту сейчас работает так:
host.com/rooms - success /home/html/admin/index.html
host.com/interview - 404 /home/html/admin/index.html
host.com/ws- 404 /home/html/admin/index.html
  • Вопрос задан
  • 144 просмотра
Пригласить эксперта
Ответы на вопрос 2
@AUser0
Чем больше знаю, тем лучше понимаю, как мало знаю.
/etc/nginx/html/admin/
/home/html/admin/
- это разные пути, совсем разные.

И ещё, /interview должен открывать файлы из /home/html/, но вы написали про 404 /home/html/admin/ - как так?
Ответ написан
Комментировать
devpav
@devpav Автор вопроса
Full-Stack разработчик.
Получается, что index.html (React) лежат в двух разных директориях.
/home/html/admin/index.html;
/home/html/index.html

location /ws {
        proxy_pass $BACKEND_URL;
        proxy_http_version 1.1;
        proxy_set_header X-Forwarded-Proto https;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection $connection_upgrade;
    }

     location / {
        root /home/html/admin/;
        try_files $uri /index.html;
     }

     location /interview {
        root /home/html/;
        try_files $uri $uri/index.html;
     }
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
28 мар. 2024, в 18:16
1000 руб./за проект
28 мар. 2024, в 18:15
90000 руб./за проект
28 мар. 2024, в 18:05
5000 руб./за проект