Помилка 504 Gateway Timeout через проксі
Сервер-посередник чекав на відповідь від наступного сервера в ланцюжку й не дочекався. Важливо зрозуміти, який саме посередник відповів.
Оновлено · Редакція Prokso
- Код 504 надсилає посередник, який не дочекався відповіді від наступного сервера в ланцюжку
- Найчастіше сайт обробляє запит надто довго або перевантажений
- Повторіть запит за хвилину, а потім відкрийте сайт без проксі
Що означає помилка
За стандартом HTTP (RFC 9110) код 504 надсилає сервер, що працює як шлюз або проксі, коли не отримав вчасно відповіді від сервера, до якого мав звернутися, щоб виконати запит.
Посередників у ланцюжку може бути кілька: проксі, через який ви працюєте, а далі — CDN, балансувальник або nginx перед самим сайтом. 504 може надіслати будь-який із них. За оформленням сторінки помилки часто видно, хто відповів: у Cloudflare, наприклад, власні коди 522 і 524.
Від звичайного тайм-ауту в програмі 504 відрізняється тим, що відповідь усе ж прийшла — просто це повідомлення посередника про те, що він не дочекався.
Причини
- Сайт обробляє запит надто довго. Важкий звіт, вивантаження, пошук без обмежень — сервер сайту не встигає за час, який дає йому посередник.
- Сайт перевантажений або недоступний. Посередник перед сайтом не може достукатися до сервера з даними.
- Повільна вихідна адреса. Резидентські й мобільні IP — це пристрої з домашнім і мобільним інтернетом, і швидкість у них різна.
- Великий обсяг відповіді. Великі файли й сторінки віддаються довше, ніж розраховано в налаштуваннях посередника.
Як виправити
- Повторіть запит за хвилину: 504 часто тимчасовий.
- Відкрийте сайт без проксі. Якщо 504 і там — проблема на боці сайту, і з проксі її не виправити.
- Подивіться на сторінку помилки: оформлення Cloudflare вказує на сайт за Cloudflare, тоді див. помилку 524 і 522.
- Зменште обсяг одного запиту: сторінки результатів, фільтри за датою, вивантаження частинами.
- На фіксованому IP змініть сесію — візьміть інший порт із діапазону 10000–20000, якщо поточна адреса відповідає повільно.
- Порівняйте з тайм-аутом проксі: якщо програма обриває з'єднання сама, без коду 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="/errors/502-bad-gateway">окремій сторінці</a>.
Чи допоможе збільшити тайм-аут у програмі?
Тайм-аут у програмі не впливає на посередника, який уже відповів 504. Він допомагає лише тоді, коли програма сама обриває очікування раніше, ніж приходить відповідь.
Інші помилки проксі
Резидентські $1.59, мобільні $2.50, серверні $0.65 за 1 ГБ
Реєстрація за хвилину, доступи одразу після оплати.