Как настроить прокси-сервер nginx для переадресации запросов к контейнеру Docker?

Как можно настроить nginx для корректной работы с fastapi приложением, запущенным через докер контейнер, чтобы избежать ошибки 502 Bad Gateway?
  • 11 мая 2024 г. 16:00
Ответы на вопрос 2
Для настройки прокси-сервера nginx для переадресации запросов к контейнеру Docker, вам необходимо создать конфигурационный файл для вашего сервера nginx. Пример такого файла может выглядеть примерно следующим образом:

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

    location / {
        proxy_pass http://localhost:8000; # Перенаправляет запросы на порт, на котором запущен ваш Docker контейнер
        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;
    }
}
```

В данном примере мы настраиваем nginx на проксирование всех запросов, поступающих на порт 80 сервера example.com, на порт 8000 локального хоста, где запущен Docker контейнер с вашим приложением. 

Чтобы избежать ошибки 502 Bad Gateway при работе с fastapi приложением через Docker контейнер, убедитесь что в вашем Docker контейнере правильно настроены порты и привязанный порт приложения не противоречит конфигурации nginx. Также необходимо убедиться, что приложение в контейнере действительно запущено и работает корректно. 

Возможно, вам также потребуется настроить параметры proxy_pass в конфигурации вашего nginx сервера соответствующим образом, чтобы обеспечить правильное перенаправление запросов на ваше fastapi приложение.
Запускайте оба контейнера через docker-compose в одной сети - тогда выставлять наружу 8001 порт не придётся, а nginx сможет ходить к приложению по имени контейнера.
Похожие вопросы