Назад | Перейти на главную страницу

Ошибки IIS ARR / Reverse Proxy 502 для файлов большего размера

У меня есть API, написанный на Python, к которому я обращаюсь с IIS 7.5 через расширение ISAPI PyISAPIe. Я подумал, что было бы разумно отделить этот API от нашего основного сайта, чтобы он находился на другом сайте, доступ к которому осуществляется через порт 8008.

Чтобы иметь доступ к API с URL-адресом, например http://domain/api, Я создал правило обратного прокси в IIS с ARR и перезапись URL, чтобы http://domain/api перенаправлен на http://domain:8008.

Обратный прокси-сервер работает правильно, и в большинстве случаев я получаю правильные ответы от API (API возвращает JSON). Однако в некоторых случаях я получаю 502 ошибки со следующим сообщением:

502 - Web server received an invalid response while acting as a gateway or proxy server.

Кажется, это происходит только тогда, когда размер ответа JSON превышает определенный размер (около 125 КБ в моих тестах) - для меньших размеров все работает правильно.

Я пробовал увеличить Response buffer threshold в настройках прокси ни на что не влияет.


Дополнительная информация

В журналах я вижу, что запросы к сайту через порт 8008 выполняются успешно и возвращают код состояния 200.

После активации отслеживания неудачных запросов единственная ошибка / предупреждение - это следующее (это происходит после получения ответа от другого сайта - см. Предыдущий пункт):

MODULE_SET_RESPONSE_ERROR_STATUS 
Warning ModuleName="ApplicationRequestRouting",
Notification="EXECUTE_REQUEST_HANDLER", HttpStatus="502", 
HttpReason="Bad Gateway", HttpSubStatus="3",
ErrorCode="2147954552"ConfigExceptionInfo=""

Можете ли вы приложить следы запросов от ARR (502) и с сайта (200)? У меня была аналогичная проблема в прошлом, и я думаю, что решил ее, увеличив maxRequestLength в конфиге ARR и сайта, который переписывается.

Вам нужно увеличить maxJsonLength настройка в web.config. Видеть этот вопрос на SO для получения подробной информации о допустимых значениях и устранении неполадок.