Использование правил трассировки неудачных запросов для устранения неполадок маршрутизации запросов приложений
Применимо: службы IIS в версиях операционной системы Windows Server 2016 и более поздних версий
Трассировка неудачных запросов — это мощный инструмент для устранения сбоев обработки запросов на веб-сервере службы IIS (IIS), который поставляется с Windows Server 2016 или более поздними версиями. В этой статье приведены инструкции по включению правил трассировки неудачных запросов для отладки сбоев и шагов трассировки в маршрутизации запросов приложений. Дополнительные сведения о правилах трассировки неудачных запросов см. в разделе "Устранение неполадок неудачных запросов" с помощью трассировки в СЛУЖБАх IIS.
Goal
Чтобы настроить правила трассировки неудачных запросов и понять, что следует искать при устранении неполадок с маршрутизацией запросов приложений.
Предварительные требования
В этом пошаговом руководстве требуются следующие предварительные требования:
- IIS в Windows Sever 2016 (любой номер SKU) или более поздней версии со службой трассировки ролей, установленной для IIS.
- Маршрутизация запросов приложений Майкрософт и зависимые модули.
- Не менее двух серверов приложений с рабочими сайтами и приложениями.
Если маршрутизация запросов приложений не установлена, скачайте ее из центра загрузки и установите ее, выполнив действия, описанные в статье "Установка маршрутизации запросов приложений".
Еще одним предварительным условием является то, что вы прошли через модуль маршрутизации запросов приложений и настроили маршрутизацию запросов приложений. Маршрутизация запросов приложений должна находиться в рабочем порядке, прежде чем продолжить работу со следующими разделами.
Шаг 1. Настройка правил трассировки неудачных запросов
Настройте правила трассировки неудачных запросов для маршрутизации запросов приложений с помощью пользовательского интерфейса или с помощью командной строки.
Настройка правил трассировки неудачных запросов с помощью пользовательского интерфейса
Запустите диспетчер службы IIS (IIS) (inetmgr).
Выберите веб-сайт по умолчанию.
В области "Действия" в разделе "Настройка" выберите "Трассировка неудачных запросов...".
В диалоговом окне "Изменение параметров трассировки неудачных запросов" веб-сайта установите флажок "Включить".
Нажмите ОК, чтобы сохранить изменения.
Выберите веб-сайт по умолчанию.
Дважды щелкните правила трассировки неудачных запросов.
В области "Действия" нажмите кнопку "Добавить...".
Выберите все содержимое (*) и нажмите кнопку "Далее".
Выберите код состояния: и введите 200-399.
Выберите Далее. В приведенной выше конфигурации создано правило трассировки неудачных запросов, которое записывает трассировки, когда код состояния находится в диапазоне от 200 до 399.
Отмените выбор расширения ASP,ASPNET и ISAPI. После выбора WWW-сервера отмените выбор всего в разделе "Области:", за исключением перезаписи и запроса. Так как маршрутизация запросов приложений использует модуль перезаписи URL-адресов для проверки входящих запросов, рекомендуется включить трассировку для маршрутизации запросов приложений (RequestRouting) и модуля переопределения URL-адресов (переопределение URL-адресов).
Дополнительные сведения о трассировках модуля переопределения URL-адресов см. в разделе "Использование трассировки неудачной трассировки запросов для правил перезаписи URL-адресов".
Нажмите Готово.
Настройка правил трассировки неудачных запросов с помощью командной строки
Откройте окно командной строки с правами администратора.
Перейдите к
%windir%\system32\inetsrv
.Чтобы включить трассировку неудачных запросов на веб-сайте по умолчанию, выполните следующую команду:
appcmd set site "Default Web Site" -traceFailedRequestsLogging.enabled:"true" /commit:apphost
Чтобы настроить правила трассировки неудачных запросов, как показано в пользовательском интерфейсе выше, выполните следующие команды:
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*']"
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /+"[path='*'].traceAreas.[provider='WWW Server',areas='Rewrite,RequestRouting',verbosity='Verbose']"
appcmd.exe set config "Default Web Site" -section:system.webServer/tracing/traceFailedRequests /[path='*'].failureDefinitions.statusCodes:"200-399"
Шаг 2. Анализ журналов трассировки неудачных запросов
На этом шаге вы отправите запросы в маршрутизацию запросов приложений и проанализируете журналы трассировки неудачных запросов.
Просмотр журналов трассировки неудачных запросов
Перейдите в каталог, в котором записываются журналы трассировки неудачных запросов. По умолчанию это расположение
%SystemDrive%\inetpub\Logs\FailedReqLogFiles\
.Измените каталог на папку, которая соответствует веб-сайту по умолчанию. По умолчанию это W3SVC1. Если вы не уверены, выберите веб-сайт по умолчанию в диспетчере IIS, а затем в области "Действия". Значение идентификатора указывает соответствующую папку. (Например, идентификатор 1 соответствует W3SVC1).
Если есть XML-файлы, удалите их, введя следующее:
del *.xml
Отправьте запрос в маршрутизацию запросов приложений. Если маршрутизация запросов приложений работает правильно, она приводит к ответу 200, который входит в диапазон от 200 до 399, указанный на шаге 1. Таким образом, журналы записываются в указанное выше расположение.
Выведите список файлов в каталоге, чтобы убедиться, что новые XML-файлы записываются.
Откройте XML-файл. Выберите "Сведения о запросе". Выберите "Завершить трассировку запроса" и выберите " Развернуть все". Ниже приведен пример журнала трассировки неудачных запросов для маршрутизации запросов приложений:
Обратите внимание на следующие разделы:
GENERAL_REQUEST_HEADERS:
- Заголовки. Показывает заголовок HTTP, полученный маршрутизацией запросов приложений.
ARR_REQUEST_ROUTED:
- WebFarm: указывает имя группы серверов, в которой направляется запрос.
- Сервер: указывает целевой сервер, на котором направляется запрос.
- Алгоритм. Указывает, какой алгоритм балансировки нагрузки используется.
- RoutingReason: указывает решение, зачем выбран сервер.
ARR_SERVER_STATS:
- Состояние: доступность целевого сервера.
- TotalRequests: статистика среды выполнения по сколько запросов было отправлено на этот сервер.
- CurrentRequests: статистика среды выполнения на параллельном количестве HTTP-запросов к этому серверу.
- BytesSent: статистика среды выполнения о том, сколько данных в КБ было отправлено на этот сервер.
- BytesReceived: статистика среды выполнения о том, сколько данных в КБ получено от этого сервера.
- ResponseTime: статистика времени выполнения на скорость отклика в мс этого сервера.
GENERAL_RESPONSE_HEADERS
- Заголовки: отображает заголовок HTTP ответа с целевого сервера.
GENERAL_RESPONSE_ENTITY_BUFFER
- Буфер: отображает сущность ответа с целевого сервера.
Ниже добавлены метки времени, указывающие время начала и окончания соответствующих событий для профилирования производительности маршрутизации запросов приложений:
- ARR_REQUEST_HEADERS_START
- ARR_REQUEST_HEADERS_END
- ARR_RESPONSE_HEADERS_START
- ARR_RESPONSE_HEADERS_END
- ARR_RESPONSE_ENTITY_START
- ARR_RESPONSE_ENTITY_END
- ARR_RESPONSE_ENTITY_START
- ARR_RESPONSE_ENTITY_END
Если вы собираете журналы трассировки неудачных запросов на серверном ядре, скопируйте журналы с таблицей стилей freb.xsl на компьютер, где доступен браузер.
Итоги
Теперь вы успешно настроили правила трассировки неудачных запросов для маршрутизации запросов приложений. Правила трассировки неудачных запросов можно использовать для устранения неполадок и отладки маршрутизации запросов приложений, а также понимания решений по маршрутизации, включая алгоритмы балансировки нагрузки, которые он сделал при выборе целевого сервера для данного запроса.