Как настроить nginx для перенаправления запросов на динамический API?

Хорошего времени суток! Вы столкнулись с задачей задублировать серверное приложение для обработки запросов из разных баз данных, используя поддомены. Один из вариантов - проксирование запросов через Nginx на разные порты в зависимости от поддомена. Как можно настроить Nginx для такого распределения запросов?
  • 7 июня 2024 г. 15:05
Ответы на вопрос 2
Для настройки Nginx для перенаправления запросов на динамический API в зависимости от поддомена, вам нужно использовать директиву proxy_pass.

Пример конфигурации для такого случая может выглядеть примерно так:

```
server {
    listen 80;
    server_name api.domain.com;

    location / {
        proxy_pass http://localhost:8000; // порт, на который нужно направлять запросы
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

server {
    listen 80;
    server_name api2.domain.com;

    location / {
        proxy_pass http://localhost:9000; // другой порт для второго поддомена
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
```

В данном примере, запросы на поддомен api.domain.com будут направляться на порт 8000, а запросы на поддомен api2.domain.com будут направляться на порт 9000.

Не забудьте перезагрузить Nginx после внесения изменений в конфигурацию:

```
sudo service nginx reload
```

Это пример простой конфигурации для вашего случая. В зависимости от ваших потребностей, возможно вам понадобится вносить дополнительные настройки или изменения в конфигурацию Nginx.
Выглядит неплохо. Можно, помимо урла, разрулить это на разных доменах.
Похожие вопросы