@galliard

Как в nginx перенаправить главную страницу на другой docker контейнер?

Есть 2 докер контейнера, на одном основной сайт, на втором отдельный лендинг. Я хочу, чтоб при запросе / открывался лендинг, а для всех остальных страниц - основной сайт. Для этого я на хостовой машине поставил nginx и написал такой конфиг

server {
    location / {
        proxy_pass http://127.0.0.1:8081/;
    }
    location ~ ^/(.*){
        proxy_pass http://127.0.0.1:8080/;
    }
    ...


Проблема в том, что nginx никак не хочет жрать этот конфиг, при команде nginx -t пишет сне такую ошибку
nginx: [emerg] "proxy_pass" cannot have URI part in location given by regular expression, or inside named location, or inside "if" statement, or inside "limit_except" block in /etc/nginx/sites-enabled/mysite.ru:8


Что я делаю не так?
  • Вопрос задан
  • 1154 просмотра
Решения вопроса 1
@mezhuev
Системный администратор
location = / {
    proxy_pass http://127.0.0.1:8081/;
}
location / {
    proxy_pass http://127.0.0.1:8080/;
}

Или по вашему варианту, но первый предпочтительней:
location / {
    proxy_pass http://127.0.0.1:8081/;
}
location ~ ^/.+ {
    proxy_pass http://127.0.0.1:8080;
}
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
smilingcheater
@smilingcheater
Прочитайте сообщение, там всё написано. Уберите завершающий слеш в proxy_pass:
proxy_pass 127.0.0.1:8080;
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы