HTTPS-запрос обслуживается Apache2 медленнее, чем через обратный прокси - PullRequest
0 голосов
/ 27 февраля 2019

Моя ситуация:
Веб-сайт размещается с использованием установки apache2 по умолчанию на сервере Ubuntu.Обслуживается через порт 443 с использованием HTTPS и самозаверяющего сертификата (для разработки).

Теперь у меня есть простой сервис, написанный на golang, который прослушивает порт 8080 и действует как обратный прокси-сервер для приема запросов https и их пересылки.локально apache и вернуть ответ клиенту.Этот веб-сервис не кэширует никаких файлов и только перенаправляет запросы.
Код: https://play.golang.org/p/tnfKVWyLuZQ

Моя «проблема»:
Вызов apache напрямую, т.е. https://foo.com/bar/заметно медленнее (200-400 мс), чем вызов веб-сайта через мой обратный прокси, то есть https://foo.com:8080/bar/

Почему медленнее напрямую вызывать apache2?Я ожидал получить накладные расходы, используя обратный прокси, а не ускорение.-> Сравнение для примера: https://i.imgur.com/TqznM2v.png


ОБНОВЛЕНИЕ : эскиз для отображения текущей настройки: Текущая настройка

Относительно кодировки : Кодировка согласована в обеих ситуациях: заголовок кодирования и длина содержимого в обоих случаях (ситуация 1 против 2) одинаковы, клиент также получает размер файла.Не уверен, почему в средстве просмотра HAR он отображает только несжатый размер во втором случае.При проверке в Chrome я вижу сжатый размер в обоих случаях.

Обновление № 2 : я пришел к выводу, что реализация golang обрабатывает несколько запросов от одного и того же клиента за короткое времяболее эффективно, чем apache2 в конфигурации по умолчанию.Sicne Я тестирую только с несколькими клиентами, я не могу сказать, насколько хорошо он масштабируется - я думаю, что веб-сервис будет отставать, когда под нагрузкой.
Я вижу это как закрытое, спасибо всем за помощь.

1 Ответ

0 голосов
/ 01 марта 2019

Насколько я могу видеть.Есть две возможные причины.

  1. Обратный прокси-сервер apache, обрабатывающий некоторый кеш, содержит статический файл, такой как изображения, css или javascript.
  2. При просмотре URL-адреса https.Произойдет процесс с именем «удаление сертификата ssl», который может вызвать огромную нагрузку на сервер.Таким образом, если веб-приложение и сертификат ssl развернуты на одном сервере, загрузка может привести к высокой задержке.Как правило, мы используем специальное устройство с именем load-balancer для удаления сертификата ssl, точно так же как обратный прокси.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...