Тайм-аут на NGINX обратный прокси, сервер работает нормально

Доброе утро,

Я настроил обратный прокси-сервер NGINX, у которого в качестве бэкэнда находится контейнер Docker (экземпляр Gitea). Проблема в том, что NGINX имеет ошибку 504 Timeout, но при прямом доступе к Docker работает нормально.

Моя конфигурация NGINX:

server {
    listen 80;
    server_name gitea.myserver.com;

    location / {
        proxy_set_header Host $http_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;
        proxy_pass http://127.0.0.1:11180;
    }
}

Доступ к http://gitea.myserver.com:11180/ отлично работает в моем браузере. Делать curl http://127.0.0.1:11180 на сервере тоже работает нормально.

У меня уже была такая же проблема вчера, и проблема была решена, когда я заново создал свой контейнер Docker, но сегодня он снова не работает. И контейнерный отдых не решил проблему. Кажется, это действительно случайно.

Есть ли способ заставить NGINX снова работать без проблем с тайм-аутом бэкэнда?

PS: другие контейнеры Docker отлично работают с тем же обратным прокси NGINX. Я на Debian 10

1 ответ

Поскольку NGINX находится не в том же контейнере Docker, что и ваш экземпляр Gitea, зачем вам использовать 127.0.0.1 в конфигурации NGINX?

Локальный хост не разделяется между хостами и контейнерами (если вы не укажете его, но это не должно быть сделано таким образом).

Вы можете попробовать указать IP-адрес контейнера Gitea (или имя контейнера Gitea, если вы используете внутренний DNS Docker) непосредственно в конфигурации NGINX. Оттуда это должно работать.

Другие вопросы по тегам