Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

HTTP Error 502.3 Bad Gateway в IIS (Reverse Proxy и ARR)

Обновлено: 15.08.2026  ·  Официальная база знаний

Архитектура маршрутизации IIS и симптомы (ARR/Proxy)

Вы используете сервер IIS (Internet Information Services) в качестве балансировщика нагрузки или обратного прокси (Reverse Proxy) через модули URL Rewrite и Application Request Routing (ARR). При обращении пользователя к внешнему сайту, браузер выдает ошибку: «HTTP Error 502.3 - Bad Gateway. A security error occurred» или «The server name or address could not be resolved».

Суть проблемы 502.3 (Forwarder Connection Error)

Код 502 (Bad Gateway - Плохой шлюз) означает, что сам по себе "внешний" сервер IIS (Прокси) работает абсолютно штатно. Однако, когда модуль ARR попытался переслать (Forward) HTTP-запрос дальше — на внутренний Backend-сервер (например, сервер приложений Node.js, Tomcat, 1С-веб или Exchange), он не смог получить от него ответ. Связь прервалась (отказ сети, сбой сертификата или таймаут).

Пошаговое дерево решений (Траблшутинг Backend-связи)

Сценарий 1: Проблема доверия SSL сертификатам (A security error occurred)

Самая частая причина (90% случаев). Если ваш Backend-сервер (например, 1С или Linux/Nginx) работает по HTTPS, модуль ARR попытается проверить его SSL-сертификат. Если на Backend-сервере установлен самоподписанный сертификат (Self-Signed), ARR сбросит соединение с ошибкой 502.3 (Security Error).

  • Правильное решение: Выгрузите сертификат Backend-сервера (.cer) и импортируйте его в хранилище «Доверенные корневые центры сертификации» (Trusted Root CAs) на сервере IIS-Прокси (через certlm.msc).
  • Обходной путь (Небезопасно): Заставьте ARR игнорировать ошибки сертификатов. Откройте реестр на сервере IIS:
    HKLM\SOFTWARE\Microsoft\IIS Extensions\Application Request Routing\Parameters
    Создайте DWORD SecureConnectionIgnoreFlags и установите значение 3300. Выполните iisreset.

Сценарий 2: Увеличение таймаута ARR (Тяжелые запросы)

Если Backend формирует тяжелый отчет (например, SQL-выгрузка на 5 минут), ARR не дождется ответа и оборвет связь по стандартному таймауту (120 секунд), вернув 502.3.

  1. Откройте IIS Manager (на уровне сервера).
  2. Дважды кликните Application Request Routing Cache.
  3. Справа в панели (Actions) выберите Server Proxy Settings.
  4. Найдите поле Time-out (seconds). Увеличьте значение со 120 до 600 (10 минут). Примените изменения.

Сценарий 3: Блокировка сети (DNS и Firewall)

Если текст ошибки гласит "The server name or address could not be resolved", значит IIS-прокси просто не может найти внутренний сервер. Откройте CMD на сервере IIS и выполните ping backend.local. Убедитесь, что DNS возвращает правильный внутренний IP-адрес. Выполните telnet backend.local 443, чтобы проверить, что локальный Firewall не режет трафик между прокси и бэкендом.

Типовые ошибки администраторов

  • Поиск проблемы в коде (C# / PHP): Ошибка 502.3 не имеет никакого отношения к коду приложения (Syntax Errors), которое крутится на IIS. Не пытайтесь отлаживать (Debug) код. Это чистая проблема сетевой маршрутизации и проксирования (Layer 7).
Сложная веб-инфраструктура с Reverse Proxy работает нестабильно и "отваливается"?
Траблшутинг балансировщиков (Load Balancers) и проксирования требует профильного DevOps-опыта. Возьмем вашу веб-инфраструктуру на системный аутсорсинг: настроим IIS/Nginx, синхронизируем сертификаты (Let's Encrypt), настроим Health-чеки и гарантируем бесперебойную работу порталов 24/7.
Практический опыт инженера: При настройке Reverse Proxy (URL Rewrite) к внутренним серверам Linux (Node.js/Apache) всегда следите за HTTP-заголовком 'HTTP_HOST'. В правиле URL Rewrite пересылайте оригинальный заголовок через переменную `{HTTP_HOST}`. Иначе Backend-сервер получит запрос с хостом 'localhost' или внутренним IP, не поймет, к какому из своих виртуальных хостов (VirtualHost) вы обращаетесь, и сбросит соединение с ошибкой 502.

Частые вопросы (FAQ)

В чем разница между 502.3 и 502.5?

502.3 (Forwarder Connection Error) — это обрыв сетевого соединения между ARR-прокси и Backend-сервером. 502.5 (Process Failure) — это ошибка модуля ASP.NET Core (ANCM), который не смог запустить локальный exe-файл приложения (dotnet.exe) внутри самого пула IIS.

Что такое ARR и зачем он нужен?

Application Request Routing (ARR) — это официальный плагин (модуль) для IIS от Microsoft. Он превращает IIS в полноценный Reverse Proxy (аналог Nginx или HAProxy), позволяя принимать запросы из интернета (порт 443) и раскидывать их по внутренним серверам в DMZ.

Почему 502.3 возникает при скачивании больших файлов?

Если размер файла превышает лимиты буфера ARR (Response buffer threshold), соединение может быть разорвано. В настройках 'Server Proxy Settings' отключите галочку 'Keep alive' или увеличьте Response buffer (KB).

Как сохранить реальный IP-адрес клиента (посетителя) на Backend-сервере?

По умолчанию Backend-сервер (например, Apache) будет видеть только IP-адрес IIS-прокси. Чтобы передать реальный IP пользователя, модуль ARR автоматически добавляет HTTP-заголовок 'X-Forwarded-For'. Настройте Backend (модули rpaf/realip), чтобы он читал этот заголовок.

Связан ли 502.3 с перегрузкой CPU на Backend-сервере?

Да. Если Backend-сервер (например, 1С) загружен на 100% (High CPU), он не успевает отвечать на HTTP-запросы. Очередь TCP-сокетов переполняется, и IIS-прокси, не дождавшись ответа, возвращает 502.3.