Медленный отклик WildFly за обратным прокси
Мы запускаем WildFly 8.1 на наших серверах. Чтобы сделать наше приложение доступным через порт 80, мы используем apache с mod_proxy. Мы передаем каждый запрос на порт 80 в WildFly. Проблема в том, что это очень медленно. Например, если мы обращаемся к приложению напрямую без прокси, время загрузки составляет около 2 секунд. Через прокси это около 20 секунд.
Мы использовали ту же конфигурацию прокси с другим сервером приложений без каких-либо проблем. Кроме того, мы попробовали это с nginx в качестве прокси тоже. Та же проблема. Более того, мы не можем найти информацию об этом в интернете. Проблема была опубликована и на форуме WildFly (см. https://developer.jboss.org/thread/251358). Но нет ответа до сих пор. Если у кого-то есть идея, что может быть не так, пожалуйста, дайте нам сейчас.
заранее спасибо
РЕДАКТИРОВАТЬ: Мы обнаружили, что обычные HTML-страницы загружаются без проблем, но, например, Java-скрипты загружаются медленно. Кажется, что-то связано с размером файла. Небольшие JavaScripts (для тестирования в 2 строки) загружаются без проблем. Другие занимают почти минуту. Мы захватили сетевой трафик. Похоже, что отправлено много пакетов TCP-Connection-Alive. Когда мы открываем один файл javascript в браузере, он сразу появляется, но браузер все еще загружается и показывает "передачу данных".
2 ответа
Похоже, что если мы отключим keepAlive в apache2.conf, страницы будут загружены с нормальной скоростью.
У меня была такая же проблема на Windows. Я решил это путем изменения URL в proxy_pass.
До изменения:
proxy_pass http://localhost;
После изменения:
proxy_pass http://127.0.0.1;
Проблема вызвана тем, что localhost может быть разрешен как адрес ipv6 (::1) и адрес ipv4 (127.0.0.1), а сервер не прослушивает оба интерфейса.
Вы можете прочитать больше здесь: https://trac.nginx.org/nginx/ticket/496