Код 444: сервер закрив з'єднання без відповіді

Сайт на nginx вирішив не відповідати на запит і просто закрив з'єднання. У вашій програмі коду 444 не буде — лише порожня відповідь.

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

Коротко
  • Сайт на nginx закрив з'єднання без відповіді, тож програма бачить лише порожню відповідь
  • Найчастіше в запиті невідоме ім'я сайту: порожній Host або IP замість домену
  • Звертайтеся за доменом, а не за IP сервера, і з правильною схемою

Що означає помилка

444 — нестандартний код вебсервера nginx. За документацією nginx, він закриває з'єднання, не надсилаючи заголовків відповіді. Власник сайту прописує його в налаштуваннях для запитів, які не хоче обслуговувати.

Цей код записується лише в журнал сервера сайту. Клієнт його не отримує: браузер Chrome показує ERR_EMPTY_RESPONSE, curl пише Empty reply from server, бібліотеки — що з'єднання закрито без відповіді.

У документації nginx є типовий приклад: сервер за замовчуванням із return 444 для запитів з невідомим іменем сайту. Тому 444 часто означає, що запит прийшов не на той сайт, якого чекав сервер.

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

Причини

  • Невідоме ім'я сайту в запиті. Заголовок Host порожній, указаний IP замість домену або домен, якого на цьому сервері немає.
  • Правило власника сайту. Запити певного виду, з певних адрес чи без потрібних заголовків сервер закриває без відповіді.
  • Запит не відповідає протоколу сайту. Наприклад, звичайний HTTP-запит на порт, де сайт чекає HTTPS.
  • Обмеження частоти. Частина власників налаштовує 444 замість 429 для запитів понад ліміт.

Як виправити

  1. Перевірте адресу: звертайтеся за доменом, а не за IP сервера, і правильною схемою — http:// чи https://.
  2. Переконайтеся, що програма надсилає заголовок Host з тим самим доменом, що й в адресі.
  3. Відкрийте ту саму сторінку в браузері без проксі. Якщо і там порожня відповідь, сайт так налаштований для всіх.
  4. Знизьте темп запитів і кількість потоків до цього сайту — див. також помилку 429.
  5. Якщо доступ потрібен для роботи, а причина в правилах сайту, зверніться до власника сайту. Обходити такі правила не варто: правила користування Prokso забороняють обхід блокувань, які наклав сайт.

Як перевірити, що все запрацювало

Через той самий проксі відкрийте «Мій IP». Якщо сторінка відкривається, проксі працює, а порожню відповідь дає конкретний сайт.

Діагностика за 2 хвилини

Спершу вставте рядок у перевірку проксі. Якщо там проксі працює, причина в програмі чи її налаштуваннях. Якщо ні — перевірте рядок з терміналу:

curl -v -x "http://ЛОГІН:ПАРОЛЬ@gw.prokso.com:823" https://api.ipify.org
  • Рядок < HTTP/1.1 407 одразу після CONNECT — відповідає проксі. Назва після коду, наприклад NO_USER, підказує причину.
  • Проксі відповів на CONNECT кодом 200, а далі прийшов інший код — проксі працює, цю відповідь дав сайт.
  • Жодної відповіді, лише тайм-аут — з'єднання не дійшло до проксі: перевірте хост, порт і мережу.

Питання й відповіді

Чому я не бачу код 444 у своїй програмі?

Бо сервер нічого не надсилає: ні коду, ні заголовків. Код 444 видно лише в журналі сайту, а програма бачить закрите з'єднання.

Це проксі закриває з'єднання?

Помилки проксі Prokso приходять з кодом і назвою причини, наприклад 407 чи 502. Порожня відповідь без коду найчастіше йде від сервера сайту.

Чи списується трафік, якщо відповіді немає?

Списується те, що реально пройшло через проксі: ваш запит і службовий обмін під час з'єднання. Без відповіді це зовсім невеликий обсяг.

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

Реєстрація за хвилину, доступи одразу після оплати.

Створити акаунт