Помилка 504 Gateway Timeout: що це таке і як її виправити
Помилка 504 Gateway Timeout — це HTTP-код стану, який виникає, коли один сервер не отримує своєчасної відповіді від іншого сервера під час обробки запиту. На практиці це означає, що upstream-сервер відповідає надто довго, через що шлюз або проксі припиняє очікування та повертає помилку кінцевому користувачу.
Цей вичерпний посібник пояснює, що таке помилка 504 Gateway Timeout, які її причини та — найголовніше — як її виправити, незалежно від того, чи ви звичайний відвідувач, чи адміністратор сервера, відповідальний за роботу сайту.
Що таке помилка 504 Gateway Timeout?
Коли сервер діє як шлюз або зворотний проксі — пересилаючи запити до upstream-сервера — він очікує відповіді протягом визначеного часового вікна. Якщо upstream-сервер не відповідає вчасно, шлюз повертає клієнту код стану 504.
Це відрізняється від 502 Bad Gateway (що вказує на недійсну відповідь) або 503 Service Unavailable (що сигналізує про тимчасову недоступність сервера). Код 504 конкретно означає, що шлюз *перевищив час очікування* дійсної відповіді.
Поширені варіанти повідомлення про помилку
Залежно від серверного програмного забезпечення, браузера або CDN ця помилка може відображатися як:
504 Gateway TimeoutHTTP Error 504Gateway Timeout ErrorError 504: Gateway Timeout504 Gateway Time-out*(поширено в Nginx)*A 504 error occurred*(поширено в середовищах Cloudflare)*
Незалежно від формулювання, всі вони вказують на одну й ту саму корінну проблему: перевищення часу очікування у зв’язку між серверами.
Поширені причини помилки 504 Gateway Timeout
Помилка 504 майже завжди є проблемою на стороні сервера, тобто вона виникає в інфраструктурі, а не в браузері чи пристрої користувача. Розуміння першопричини є необхідним для застосування правильного виправлення.
1. Перевантаження сервера
Коли сервер перевантажений раптовим сплеском трафіку або надмірною кількістю одночасних запитів, він може бути не в змозі обробити та відповісти в межах налаштованого часового вікна. Це одна з найпоширеніших причин помилок 504 на сайтах із високим трафіком.
Ознаки для перевірки: Підвищене використання CPU, вичерпання пам’яті, довгі черги запитів у журналах сервера.
2. Проблеми з мережевим з’єднанням між серверами
Проблема може бути не в жодному з серверів окремо, а в мережевому шляху між ними. Втрата пакетів, збої маршрутизації або стрибки затримки між шлюзом і upstream-сервером можуть спричинити перевищення часу очікування.
Ознаки для перевірки: Переривчасті помилки, помилки, що корелюють із певними географічними регіонами або центрами обробки даних.
3. Проблеми з DNS-розпізнаванням
Якщо DNS-записи налаштовані неправильно, застаріли або не повністю поширилися після міграції сервера, шлюз може не зуміти розпізнати адресу upstream-сервера — що призведе до перевищення часу очікування ще до встановлення з’єднання.
Ознаки для перевірки: Помилки 504, що з’являються одразу після перенесення домену або міграції сервера.
4. Неправильно налаштовані або надмірно обмежувальні брандмауери
Надто агресивні брандмауери можуть непомітно відкидати пакети між серверами, не даючи відповіді upstream-сервера досягти шлюзу. Це поширена проблема в захищених серверних середовищах, де правила брандмауера не були оновлені з урахуванням нових шляхів зв’язку між серверами.
Ознаки для перевірки: Помилки 504, що стосуються лише певних типів запитів або діапазонів IP.
5. Неправильна конфігурація проксі-сервера або CDN
Якщо ваш сайт маршрутизує трафік через проксі-сервер або мережу доставки контенту (CDN), наприклад Cloudflare, Sucuri або Fastly, будь-яка неправильна конфігурація або затримка на цьому рівні може спричинити помилку 504 ще до того, як запит досягне вашого origin-сервера.
Ознаки для перевірки: Помилки 504, що зникають при обході CDN.
6. Повільні або недоступні upstream-застосунки
Якщо ваш сервер залежить від зовнішнього API, бази даних або мікросервісу, що відповідає надто довго, шлюз перевищить час очікування результату. Це дедалі частіше трапляється в сучасних веб-архітектурах, що покладаються на сторонні інтеграції.
Ознаки для перевірки: Помилки 504, що корелюють із певними сторінками або функціями, які залежать від зовнішніх джерел даних.
7. Надто короткі налаштування часу очікування
Іноді upstream-процес функціонує правильно, але просто займає більше часу, ніж дозволяє налаштований час очікування сервера. Якщо proxy_read_timeout або подібні директиви встановлені надто консервативно, легітимні запити будуть передчасно перервані.
Як виправити помилку 504 Gateway Timeout
Відповідне виправлення залежить від того, чи ви відвідувач, що стикається з помилкою, чи адміністратор сервера, відповідальний за відповідну інфраструктуру.
Для відвідувачів: швидкі кроки з усунення несправностей
Якщо ви звичайний користувач, що бачить помилку 504, проблема майже напевно знаходиться на стороні сервера — але є кілька речей, які ви можете спробувати:
#### 1. Оновіть сторінку
Натисніть F5 або кнопку перезавантаження в браузері. Якщо сервер був тимчасово перевантажений, просте оновлення може спрацювати після зниження навантаження.
#### 2. Примусове оновлення
Спробуйте примусове оновлення (Ctrl+Shift+R у Windows/Linux, Cmd+Shift+R у macOS), щоб обійти кеш браузера та надіслати новий запит до сервера.
#### 3. Очистіть кеш браузера та файли cookie
Застарілі кешовані дані іноді можуть заважати зв’язку з сервером. Очистіть кеш і файли cookie браузера через Налаштування → Конфіденційність і безпека, а потім повторіть спробу.
#### 4. Перевірте підключення до Інтернету
Переконайтеся, що ваше з’єднання стабільне. Нестабільне з’єднання іноді може перешкоджати належному зв’язку з сервером, посилюючи наявну проблему з часом очікування.
#### 5. Спробуйте іншу мережу або пристрій
Перейдіть на мобільні дані або іншу мережу Wi-Fi. Якщо помилка зникає, проблема може бути пов’язана з вашим провайдером або конфігурацією локальної мережі, а не з самим сервером.
#### 6. Зачекайте та спробуйте знову
Помилки 504 часто є тимчасовими. Якщо сервер перебуває під тимчасовим навантаженням, зачекати 5–10 хвилин і повторити спробу — часто найефективніший спосіб дій.
Для адміністраторів серверів: поглиблені виправлення
Якщо ви керуєте сервером або сайтом, що зазнає помилок 504, необхідний більш систематичний підхід.
#### 1. Перевірте використання ресурсів сервера
Почніть із перегляду поточного споживання ресурсів вашого сервера. Високе навантаження на CPU, вичерпання пам’яті або заповнений диск можуть перешкоджати своєчасній обробці запитів.
# Check CPU and memory usage
top
htop
# Check disk usage
df -h
# Review recent system logs
tail -f /var/log/syslog
journalctl -xeРішення: Якщо ваш сервер постійно перебуває під великим навантаженням, розгляньте можливість переходу на більш потужний план. VPS Хостинг від AlexHost надає масштабовані ресурси, які можна регулювати в міру зростання трафіку, тоді як Виділені сервери забезпечують максимальну продуктивність для середовищ із високими вимогами.
#### 2. Перезапустіть веб-сервер і служби застосунків
Контрольований перезапуск процесу веб-сервера може очистити зависші робочі процеси, звільнити пам’ять і вирішити тимчасові проблеми.
# Restart Nginx
sudo systemctl restart nginx
# Restart Apache
sudo systemctl restart apache2
# Restart PHP-FPM (if applicable)
sudo systemctl restart php8.1-fpmВажливо: Завжди перевіряйте журнали до та після перезапуску, щоб підтвердити, чи вирішив перезапуск проблему.
#### 3. Збільшіть ліміти часу очікування сервера
Якщо легітимні запити перериваються, оскільки займають більше часу, ніж дозволяє стандартний час очікування, збільшіть відповідні директиви часу очікування у конфігурації сервера.
Для Nginx (/etc/nginx/nginx.conf або серверний блок вашого сайту):
proxy_connect_timeout 300;
proxy_send_timeout 300;
proxy_read_timeout 300;
send_timeout 300;Для Apache (/etc/apache2/apache2.conf або .htaccess):
Timeout 300
ProxyTimeout 300Для PHP-FPM (/etc/php/8.1/fpm/pool.d/www.conf):
request_terminate_timeout = 300Після внесення змін завжди перезавантажте або перезапустіть службу:
sudo nginx -t && sudo systemctl reload nginx
# or
sudo apachectl configtest && sudo systemctl reload apache2#### 4. Дослідіть і вирішіть проблеми з DNS
Якщо помилка 504 з’явилася після міграції сервера, перенесення домену або зміни DNS-записів, поширення DNS може бути неповним або записи можуть вказувати на неправильний сервер.
Кроки для діагностики:
# Check current DNS resolution
dig yourdomain.com
nslookup yourdomain.com
# Check from a specific DNS server
dig @8.8.8.8 yourdomain.comСкористайтеся онлайн-інструментом, наприклад DNS Checker, щоб перевірити статус глобального поширення.
Рішення: Переконайтеся, що ваші A-записи та CNAME-записи вказують на правильну IP-адресу. Якщо ви нещодавно зареєстрували або перенесли домен, зачекайте до 48 годин для повного поширення. Служба Реєстрації доменів від AlexHost включає інструменти керування DNS, що допомагають підтримувати записи точними та актуальними.
#### 5. Перегляньте правила брандмауера та налаштування безпеки
Брандмауер, що блокує зв’язок між серверами, є поширеною, але часто недооціненою причиною помилок 504. Перевірте журнали брандмауера на наявність відкинутих або відхилених з’єднань.
# Check UFW logs (Ubuntu/Debian)
sudo ufw status verbose
sudo tail -f /var/log/ufw.log
# Check iptables rules
sudo iptables -L -n -v
# Check firewalld (CentOS/RHEL)
sudo firewall-cmd --list-allРішення: Визначте будь-які правила, що можуть блокувати трафік між вашим шлюзом і upstream-серверами, та оновіть їх, щоб дозволити необхідний зв’язок. Будьте обережні та не відкривайте порти без потреби — застосовуйте принцип найменших привілеїв.
#### 6. Налагодьте конфігурацію проксі та CDN
Якщо ваш сайт використовує зворотний проксі (наприклад, Nginx як проксі для застосунку Node.js або Python) або CDN, переконайтеся, що конфігурація проксі правильна і що origin-сервер доступний.
Для зворотного проксі Nginx перевірте upstream-блок:
upstream backend {
server 127.0.0.1:3000;
keepalive 32;
}
server {
location / {
proxy_pass http://backend;
proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_read_timeout 300;
}
}Для помилок 504, пов’язаних із CDN:
- Тимчасово обійдіть CDN, звернувшись до сайту безпосередньо через його IP-адресу, щоб визначити, чи є джерелом проблеми CDN або origin-сервер.
- Перегляньте налаштування часу очікування origin у CDN — багато CDN мають власні налаштовувані значення часу очікування, які мають відповідати налаштуванням вашого сервера.
- Перевірте сторінку статусу CDN на наявність поточних інцидентів.
#### 7. Оптимізуйте повільні запити до бази даних і код застосунку
Якщо помилка 504 спричинена повільним upstream-застосунком — наприклад, запитом до бази даних, що виконується надто довго — виправлення полягає в оптимізації на рівні застосунку, а не в конфігурації сервера.
Кроки для дослідження:
- Увімкніть журналювання повільних запитів у MySQL/MariaDB:
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2;- Перегляньте інструменти моніторингу продуктивності застосунків (APM), такі як New Relic, Datadog або відкриті альтернативи, наприклад Netdata.
- Додайте індекси бази даних до часто запитуваних стовпців.
- Впровадьте кешування (Redis, Memcached), щоб зменшити кількість ресурсомістких звернень до бази даних.
#### 8. Проактивно моніторте стан сервера
Реактивне усунення несправностей менш ефективне, ніж проактивний моніторинг. Налаштуйте сповіщення для порогових значень CPU, пам’яті, дискового введення/виведення та часу відповіді, щоб виявляти та вирішувати проблеми до того, як вони призведуть до помилок 504 для ваших відвідувачів.
Якщо ваше поточне хостингове середовище не має ресурсів або гнучкості для впровадження цих оптимізацій, можливо, настав час розглянути оновлення. Плани VPS з cPanel від AlexHost пропонують інтуїтивний інтерфейс керування поряд із продуктивністю віртуального приватного сервера — що спрощує моніторинг і керування сервером без глибоких знань командного рядка.
504 порівняно з іншими поширеними помилками шлюзу
Розуміння відмінності 504 від пов’язаних HTTP-помилок допомагає точніше діагностувати проблеми:
| Код помилки | Назва | Значення |
|---|---|---|
| 502 | Bad Gateway | Upstream-сервер повернув недійсну відповідь |
| 503 | Service Unavailable | Сервер тимчасово не може обробляти запити |
| 504 | Gateway Timeout | Шлюз перевищив час очікування відповіді від upstream-сервера |
| 408 | Request Timeout | Клієнт надто довго надсилав повний запит |
| 524 | A Timeout Occurred | Специфічно для Cloudflare; origin-сервер перевищив час очікування |
Запобігання помилкам 504: найкращі практики
Замість того щоб чекати на виникнення помилок 504 і реагувати на них, впровадьте ці найкращі практики для мінімізації їх імовірності:
- Правильно підбирайте ресурси сервера — переконайтеся, що ваш хостинговий план може впоратися з очікуваним трафіком, включно з пікові навантаженнями.
- Використовуйте балансувальник навантаження — розподіляйте трафік між кількома серверами, щоб запобігти перетворенню будь-якого окремого сервера на вузьке місце.
- Активно впроваджуйте кешування — використовуйте кешування повних сторінок, кешування об’єктів і кешування на вузлах CDN, щоб зменшити кількість запитів, що досягають вашого origin-сервера.
- Встановлюйте реалістичні значення часу очікування — налаштовуйте час очікування відповідно до фактичного часу обробки, якого потребує ваш застосунок, а не довільних значень за замовчуванням.
- Моніторте стан DNS — регулярно перевіряйте правильність ваших DNS-записів і відповідність значень TTL.
- Оновлюйте програмне забезпечення — застаріле серверне програмне забезпечення, версії PHP або плагіни CMS можуть створювати вузькі місця продуктивності, що сприяють перевищенню часу очікування.
- Належно захищайте свій сервер — правильно налаштований SSL-сертифікат не лише захищає ваших користувачів, але й гарантує, що зашифровані з’єднання між серверами не створюють несподіваних затримок під час рукостискання. SSL-сертифікати від AlexHost легко розгортаються та допомагають підтримувати безпечний і ефективний зв’язок між серверами.
Висновок
Помилка 504 Gateway Timeout — це проблема на стороні сервера, що виникає, коли шлюз або проксі не отримує своєчасної відповіді від upstream-сервера. Хоча вона може бути неприємною для відвідувачів, її майже завжди можна діагностувати та виправити за правильного підходу.
Для відвідувачів найкращими негайними кроками є оновлення сторінки, очищення кешу та очікування кількох хвилин перед повторною спробою.
Для адміністраторів серверів виправлення вимагає систематичного дослідження: перевірки використання ресурсів сервера, перегляду конфігурацій часу очікування, аудиту правил брандмауера, перевірки DNS-записів та оптимізації повільного коду застосунку або запитів до бази даних.
Вибір надійного хостинг-провайдера з надійною інфраструктурою є найефективнішим способом зменшити частоту помилок 504. Незалежно від того, чи потрібен вам масштабований VPS Хостинг, високопродуктивні Виділені сервери або початковий Спільний Веб-хостинг, AlexHost надає інфраструктуру, підтримку та інструменти для підтримки вашого сайту швидким, стабільним і доступним цілодобово.
