Понимание и анализ тайм-аутов прокси-сервера

Просмотр категорий

Понимание и анализ тайм-аутов прокси-сервера

9 min read

Главная #

Прокси-служба — это программное обеспечение, предназначенное для прозрачного управления подключениями клиентов к одной или нескольким службам, предоставляющее расширенную обработку данных или соединений на уровне приложения (уровень 7 в модели OSI). Для этого прокси-сервис устанавливает одно соединение с клиентом, а другое — с сервером, стремясь обеспечить бесперебойное соединение между ними.

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

В этой статье представлены сведения об анализе и выявлении распространенных проблем с тайм-аутом на прокси-серверах. Ключевая информация, которую необходимо изучить, заключается в том, происходят ли тайм-ауты на внутренней стороне или на стороне клиента. Как только это различие будет сделано, можно будет применить соответствующие настройки таймаута.

Тайм-ауты на стороне бэкенда #

Если на серверной стороне происходят таймауты, соответствующие сообщения отображаются следующим образом:

21 августа 09:23:06 noid-ee-01 фунт: noid-proxy-farm-01, служба noid-service-01, серверная часть 10.100.200.10:443, (7ff830b85700) ошибка копирования сервера, продолжение: время ожидания соединения истекло 21 августа 09 г. :23:06 noid-ee-01 фунт: noid-proxy-farm-01, служба noid-service-01, серверная часть 10.100.200.11:443, (7ff832d8b700) ошибка копирования сервера, продолжение: время ожидания соединения истекло 21 августа 09:23: 16 noid-ee-01 фунт: noid-proxy-farm-01, служба noid-service-01, серверная часть 10.100.200.10:443, (7ff799926700) ошибка сервера копирования, продолжение: время ожидания соединения истекло 21 августа 09:23:18 noid- ee-01 фунт: noid-proxy-farm-01, служба noid-service-01, серверная часть 10.100.200.10:443, (7ff830bc6700) ошибка сервера копирования, продолжение: сломанная труба 21 августа 09:23:19 noid-ee-01 фунт : noid-proxy-farm-01, служба noid-service-01, серверная часть 10.100.200.10:444, (7f15f5a8c700) connect_nb: время ожидания опроса истекло 21 августа 09:23:24 noid-ee-01 фунт: noid-proxy-farm -01, служба noid-service-01, серверная часть 10.100.200.11:443, (7ff79a9a7700) ошибка копирования сервера, продолжение: время ожидания соединения истекло 21 августа 09:23:24 noid-ee-01 фунт: noid-proxy-farm-01, service noid-service-01, серверная часть 10.100.200.10:443, (7ff79a28b700) ошибка копирования сервера, продолжение: время ожидания соединения истекло

Эти ошибки тайм-аута серверной части указывают соответствующие ферма, СЕРВИС и бэкэнда связанный с ошибкой. Эта информация четко идентифицирует серверную часть или серверные части, связанные с проблемой. Если в проблеме тайм-аута замешаны несколько ферм, служб или серверных частей, может потребоваться сбор дополнительной информации для исследования любых потенциальных проблем с сетью.

Включение журналов фермы может выявить случаи, когда конкретная серверная часть изначально отвечает быстро, но внезапно сталкивается с проблемой тайм-аута, как показано в выдержке журнала ниже:

25 января 19:57:04 noid-ee-01 фунт: noid-proxy-farm-01, my.service.com 185.106.182.130 - - [25/янв/2024:19:57:04 +0000] "GET / myserv/ HTTP/1.1" 200 9 "" "Mozilla/3.0 (совместимый; ...)" (noid-service-01 -> 10.100.200.10:443) 0.039 с
25 января 19:57:04 noid-ee-01 фунт: noid-proxy-farm-01, my.service.com 88.111.111.111 - - [25/янв/2024:19:57:04 +0000] "GET / myserv/ HTTP/1.1" 200 9 "" "Mozilla/3.0 (совместимый; ...)" (noid-service-01 -> 10.100.200.10:443) 0.035 с

25 января 19:57:04 noid-ee-01 фунт: noid-proxy-farm-01, служба noid-service-01, бэкэнд 10.100.200.10:443, (7fcd8eb0f700) Connect_nb: время опроса истекло
25 января 19:57:04 noid-ee-01 фунт: noid-proxy-farm-01, служба noid-service-01, серверная часть 10.100.200.10:443, (7fcd8eb0f700) серверная часть 10.100.200.10:443 Connect: время ожидания соединения истекло 25 января 19:57:04 noid-ee-01 фунт: noid-proxy-farm-01, (7fcd8eb0f700) BackEnd 10.100.200.10:443 мертв (убит) в ферме: 'noid-proxy-farm-01', сервис: 'ocp-ocuco-com' 25 января 19:57:04 noid-ee-01 фунт: noid-proxy-farm-01, служба noid-service-01, бэкэнд 10.100.200.10:443, (7fcd8eb0f700) BackEnd мертв (убит) )

Такое поведение может указывать на то, что серверная часть достигла предела количества подключений, что предотвращает дополнительные подключения. Альтернативно это может означать, что серверная часть недостаточно быстро освобождает соединения, что приводит к возникновению узкого места. Чтобы решить эту проблему, рекомендуется отслеживать серверную часть и осуществлять оптимизацию, например разрешать больше подключений или масштабировать службу путем добавления дополнительных серверных частей.

Если только определенные серверные части испытывают проблемы с тайм-аутом в рамках одной и той же службы, это означает, что у этих конкретных серверных частей могут быть проблемы, связанные с медленной доставкой приложений или проблемами с сетью. Решения или способы устранения этих ошибок описаны ниже.

Таймауты на стороне клиента #

И наоборот, тайм-ауты клиента проявляются в системный журнал в следующем формате:

18 августа 07:31:38 noid-ee-01 фунт: noid-proxy-farm-01, (7f8862187700) ошибка, прочитанная от 12.91.1.78: время ожидания соединения истекло 18 августа 07:31:43 noid-ee-01 фунт: noid -proxy-farm-01, (7f8863c71700) ошибка чтения с 12.2.1.105: время ожидания соединения истекло 18 августа 07:32:03 noid-ee-01 фунт: noid-proxy-farm-01, (7f886275e700) ошибка чтения с 12.41.1.58. 18: Время ожидания соединения истекло 07 августа 32:07:01 noid-ee-01 фунт: noid-proxy-farm-7, (8880f84700d12.88.1.67) ошибка, прочитанная от 18: Время ожидания соединения истекло 07 августа 32:16:01 noid-ee -01 фунт: noid-proxy-farm-7, (8880933700f12.3.1.158) ошибка, прочитанная из XNUMX: время ожидания соединения истекло.

Если в журналах отсутствует информация о ферме или службе, это указывает на то, что запрос клиента не дошел до прокси-сервера должным образом. Клиенту требуется длительное время для выполнения HTTP-запроса, в результате чего прокси-сервер не узнает о запрашивающей службе. Массив IP-адресов может помочь определить, связана ли проблема с внутренней сетью, внешними клиентами или теми, кто проходит через определенный брандмауэр.

Более того, для внешних клиентов крайне важно убедиться в их легитимности. Использование сервисов AbuseIP может помочь в сборе такой информации.

Кроме того, для решения проблем с тайм-аутом клиента крайне важно убедиться, что прокси-сервер не прерывает соединения преждевременно. Убедитесь, что сумма тайм-аутов соединения и серверной части меньше тайм-аута клиента, чтобы избежать преждевременного отключения прокси-сервера.

Ниже приведены сведения об устранении или смягчении этих ошибок.

Исправление таймаутов на стороне бэкэнда #

Проверка сетевого уровня #

Для начала важно подтвердить стабильность сетевого уровня и обеспечить отсутствие дублированных пакетов, потерянных пакетов или значительных колебаний задержки. Выполните следующие действия, чтобы выполнить проверку сетевого уровня:

1. Выполните проверку связи от балансировщика нагрузки к серверной части и дайте ей поработать несколько минут.

root@noid-ee-01:~# пинг 10.100.200.10

2. Наблюдайте за ответами на ping во время выполнения:

PING 10.100.200.10 (10.100.200.10) 56(84) байт данных. 64 байта из 10.100.200.10: icmp_seq=1 ttl=64 время=0.395 мс 64 байта из 10.100.200.10: icmp_seq=2 ttl=64 время=0.626 мс 64 байта из 10.100.200.10: icmp_seq=3 время=64 MS [...] 0.178 байта из 64: ICMP_SEQ = 10.100.200.10 TTL = 21 ВРЕМЯ = 64 мс 0.502 байт из 64: ICMP_SEQ = 10.100.200.10 TTL = 22 Время = 64 мс 0.638 байтов из 64: ICMP_SEQ = 10.100.200.10 ttl=23 time=64 мс ^C --- статистика пинга 0.573 ---
23 пакета отправлено, 23 получено, потеря пакетов 0%, время 140 мс rtt мин/сред/макс/мот = 0.178/0.539/0.854/0.141 мс

Этот ответ указывает на то, что сеть стабильна, без потерянных пакетов или проблем с задержкой. Убедитесь в отсутствии каких-либо аномалий во время пинг-теста, чтобы подтвердить надежность сетевого уровня.

Кроме того, выполнив tcpdump при репликации проблемы, вы можете проанализировать сетевой трафик, чтобы точно определить конкретный момент, когда возникают задержки связи или когда определенные пакеты отсутствуют. Используйте следующую команду:

root@noid-ee-01:~# tcpdump -i любой порт tcp PORT и хост BACKENDIP -w /tmp/capture.pcap

Эта команда создаст файл с именем /tmp/capture.pcap, который можно проанализировать с помощью Wireshark. Будьте осторожны, так как этот файл может быстро расти, если захватывает значительный объем трафика.

Настройка таймаутов прокси #

Настройка различных таймаутов в Расширенная конфигурация фермы позволяет нам адаптировать поведение прокси-сервера к потребностям наших серверов приложений, особенно когда им требуется дополнительное время для каждого запроса или когда производительность сети низкая. Учитывайте следующие рекомендации:

Тайм-аут серверного соединения: установите максимальное время для подключить () операцию против выбранного бэкэнда. Если сообщения типа «connect_nb: время опроса истекло» обнаружены, рассмотрите возможность увеличения этого значения с 20 секунд по умолчанию до 30 или 40 секунд. Постепенно увеличивайте значение на основе наблюдаемых результатов, помня, что тайм-аут может быть связан с основной проблемой в другом месте.

Таймаут ответа серверной части: Отрегулируйте это значение, если сообщение «Ошибка сервера копирования, продолжение: время ожидания соединения истекло» идентифицирован. Аналогичным образом постепенно увеличивайте это значение до тех пор, пока не будет наблюдаться уменьшение количества таких сообщений. Однако будьте осторожны и не увеличивайте это значение слишком сильно, так как это может скрыть основные проблемы на внутренней стороне. Значение по умолчанию — 45 секунд, поэтому рассмотрите возможность увеличения его до 60 секунд и более, следя за отсутствием ошибок.

Частота проверки восстановленных бэкэндов: В тех случаях, когда необходимы более высокие тайм-ауты из-за проблем с сетью или сервером приложений, вызывающих периодические ошибки HTTP 503 (что указывает на отсутствие доступной серверной части службы), рассмотрите возможность уменьшения этого значения с 10 секунд до 5. Эта настройка помогает снизить количество ложных срабатываний при маркировке серверных частей как вызванных отключением. по таймаутам. Проанализируйте, находятся ли тайм-ауты в пределах нормы, поскольку балансировщик нагрузки прокси-сервера может решить определенные проблемы в этом контексте.

Пожалуйста, проведите тщательный анализ, чтобы определить нормальность таймаутов. Балансировщик нагрузки прокси-сервера способен решать и смягчать определенные проблемы, связанные с тайм-аутом.

Более подробную информацию можно найти в следующей статье:

https://www.relianoid.com/resources/knowledge-base/lslb/enterprise-edition-v6-2-administration-guide-lslb-farms-update-http-profile/

Настроить проверки работоспособности #

Farm Guardian служит для активации или деактивации серверных частей в зависимости от их доступности. В этом сценарии использование Farm Guardian позволяет нам убедиться в фактической доступности бэкэндов. Этот процесс работает независимо и параллельно с прокси-сервером, предоставляя возможность проверить, действительно ли проблемы с серверной частью приводят к возникновению узких мест на внутренней стороне. Кроме того, исследуя статистику серверной части, когда серверная часть помечена как отключенная, мы можем определить количество соединений, обрабатываемых этим сервером, что позволяет нам определить ограничения на количество подключений для каждой серверной части.

Настройка проверки FarmGuardian для TCP позволяет нам выявлять любые проблемы с подтверждением связи с серверными модулями, которые могут указывать на узкое место на уровне системы или веб-сервера. С другой стороны, настройка проверки FarmGuardian для HTTP помогает выявить проблемы на уровне приложений с серверными модулями, указывая на потенциальные узкие места на уровне приложения или базы данных.

Исправление таймаутов на стороне клиента #

Проверка сетевого уровня #

Чтобы проверить стабильность сети, выполните ping-тест с другого сервера или компьютера по IP-адресу виртуального IP-адреса, настроенного для фермы балансировки нагрузки. Это обеспечивает внешний вид и помогает подтвердить надежность сети.

Проверка законных клиентов #

Используйте безопасные инструменты, чтобы определить, связаны ли проблемы с тайм-аутом с законными клиентами, роботами или потенциальными злоумышленниками. Если таймауты связаны с неавторизованными пользователями, внедрите черные списки IPDS и/или защиту от DoS-атак, чтобы защитить свои услуги и обеспечить доставку только действительным и подлинным пользователям.

Настройка таймаутов прокси #

Кроме того, рассмотрите возможность настройки тайм-аутов прокси-сервера в соответствии с характером клиентов, подключающихся к вашим службам через балансировщик нагрузки. Если, например, мобильные клиенты, проблемы с брандмауэром или медленные сети способствуют увеличению времени отклика, настройте Время ожидания запроса клиента вариант в Дополнительные настройки вашей фермы LSLB. Значение по умолчанию: (30%); вы можете увеличить его до 60 секунд или более в зависимости от ваших конкретных требований. Значение тайм-аута клиента должно превышать сумму тайм-аута соединения и тайм-аута ответа серверной части.

Для получения более подробной информации, пожалуйста, обратитесь к следующей статье:

https://www.relianoid.com/resources/knowledge-base/lslb/enterprise-edition-v6-2-administration-guide-lslb-farms-update-http-profile/

📄 Загрузите этот документ в формате PDF #

    EMAIL: *

    Powered by BetterDocs