Ошибка 504 Gateway Timeout через прокси

Сервер-посредник ждал ответа от следующего сервера в цепочке и не дождался. Важно понять, какой именно посредник ответил.

Обновлено · Редакция Prokso

Коротко
  • Код 504 отправляет посредник, который не дождался ответа от следующего сервера в цепочке
  • Чаще всего сайт обрабатывает запрос слишком долго или перегружен
  • Повторите запрос через минуту, а затем откройте сайт без прокси

Что означает ошибка

По стандарту HTTP (RFC 9110) код 504 отправляет сервер, работающий как шлюз или прокси, когда он не получил вовремя ответа от сервера, к которому должен был обратиться, чтобы выполнить запрос.

Посредников в цепочке может быть несколько: прокси, через который вы работаете, а дальше — CDN, балансировщик или nginx перед самим сайтом. 504 может прислать любой из них. По оформлению страницы ошибки часто видно, кто ответил: у Cloudflare, например, собственные коды 522 и 524.

От обычного тайм-аута в программе 504 отличается тем, что ответ всё же пришёл — просто это сообщение посредника о том, что он не дождался.

Кто возвращает ошибку: 407 — прокси, 401 и 403 — сам сайтВаша программаПроксиgw.prokso.comСайт407 — отвечает прокси: логин, пароль или остаток трафика401 / 403 — отвечает сайт: вход на сайт или доступ
Кто возвращает ошибку: 407 — прокси, 401 и 403 — сам сайт

Причины

  • Сайт обрабатывает запрос слишком долго. Тяжёлый отчёт, выгрузка, поиск без ограничений — сервер сайта не успевает за время, которое даёт ему посредник.
  • Сайт перегружен или недоступен. Посредник перед сайтом не может достучаться до сервера с данными.
  • Медленный исходящий адрес. Резидентские и мобильные IP — это устройства с домашним и мобильным интернетом, и скорость у них разная.
  • Большой объём ответа. Большие файлы и страницы отдаются дольше, чем рассчитано в настройках посредника.

Как исправить

  1. Повторите запрос через минуту: 504 часто временная.
  2. Откройте сайт без прокси. Если 504 и там — проблема на стороне сайта, и через прокси её не исправить.
  3. Посмотрите на страницу ошибки: оформление Cloudflare указывает на сайт за Cloudflare, тогда см. ошибку 524 и 522.
  4. Уменьшите объём одного запроса: страницы результатов, фильтры по дате, выгрузка частями.
  5. На фиксированном IP смените сессию — возьмите другой порт из диапазона 10000–20000, если текущий адрес отвечает медленно.
  6. Сравните с тайм-аутом прокси: если программа обрывает соединение сама, без кода 504, причина другая.

Как проверить, что всё заработало

В проверке прокси видно время ответа адреса. Если прокси отвечает быстро, а 504 приходит только с одного сайта и только на тяжёлых запросах — задержка на стороне сайта.

Диагностика за 2 минуты

Сначала вставьте строку в проверку прокси. Если там прокси работает, причина в программе или её настройках. Если нет — проверьте строку из терминала:

curl -v -x "http://ЛОГИН:ПАРОЛЬ@gw.prokso.com:823" https://api.ipify.org
  • Строка < HTTP/1.1 407 сразу после CONNECT — отвечает прокси. Название после кода, например NO_USER, подсказывает причину.
  • Прокси ответил на CONNECT кодом 200, а дальше пришёл другой код — прокси работает, этот ответ дал сайт.
  • Никакого ответа, только тайм-аут — соединение не дошло до прокси: проверьте хост, порт и сеть.

Вопросы и ответы

504 — это ошибка прокси?

Не обязательно. Код отправляет тот посредник, который не дождался ответа. Часто это сервер перед самим сайтом, а не прокси.

Чем 504 отличается от 502?

502 означает, что посредник получил от следующего сервера неправильный ответ или не смог соединиться. 504 — что ответа не было вовремя. О 502 — на <a href="/ru/errors/502-bad-gateway">отдельной странице</a>.

Поможет ли увеличить тайм-аут в программе?

Тайм-аут в программе не влияет на посредника, который уже ответил 504. Он помогает только тогда, когда программа сама прекращает ожидание раньше, чем приходит ответ.

Резидентские $1.59, мобильные $2.50, серверные $0.65 за 1 ГБ

Регистрация за минуту, доступы сразу после оплаты.

Создать аккаунт