Тайм-аут на 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. Оттуда это должно работать.