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

Как настроить NGINX для маршрутизации запросов к основному сайту или лендингу, в зависимости от запрошенного URL?
  • 12 марта 2024 г. 10:19
Ответы на вопрос 3
Для установки перенаправления в nginx для главной страницы на другой docker контейнер, необходимо сначала создать разделенную сеть для ваших docker контейнеров. Для этого можно использовать команду:
```
docker network create mynetwork
```

Далее, запустите ваш основной docker контейнер и контейнер, на который будет происходить перенаправление, подключив их к созданной сети:
```
docker run --name main_container --network mynetwork nginx
docker run --name redirect_container --network mynetwork nginx
```

Затем отредактируйте конфигурационный файл nginx (обычно располагается в /etc/nginx/nginx.conf) и добавьте следующие строки:

```
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://redirect_container;
    }
}
```

Данная конфигурация указывает nginx на проксирование всех запросов к главной странице (‘/’) на контейнер с именем redirect_container.

Для настройки маршрутизации запросов к основному сайту или лендингу в зависимости от запрошенного URL, можно использовать блоки location в конфигурации nginx. Например:

```
server {
    listen 80;
    server_name your_domain.com;

    location / {
        proxy_pass http://main_container;
    }

    location /landing {
        proxy_pass http://landing_container;
    }

    location /blog {
        proxy_pass http://blog_container;
    }
}
```

В данной конфигурации запросы к URL / будут направляться на основной сайт, запросы к URL /landing - на контейнер с лендингом, а запросы к URL /blog - на контейнер с блогом. 

Не забудьте перезапустить nginx после внесения изменений в конфигурацию с помощью команды:
```
sudo systemctl restart nginx
```
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;
}
Прочитайте сообщение, там всё написано. Уберите завершающий слеш в proxy_pass: 
proxy_pass 127.0.0.1:8080 ;
Похожие вопросы