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

Эффективная настройка для работы с серверами приложений с помощью Apache

Мне приходится запускать различные серверы приложений (вначале это будет JBoss 6, Tomcat 8 standalone и Tomcat 8, встроенный в приложения spring boot 1.2) с Apache 2.4. Из-за этого я решил использовать mod_proxy (а не jk, ajp или что-то в этом роде). Насколько мне известно, я настроил Apache и серверы приложений для повторного использования / подключения пула. Но когда я подсчитываю количество открытых портов, я вижу несколько тысяч:

$ netstat | grep :80 | wc -l
4630

(Я нахожусь в Windows, приведенная выше команда была запущена в Cygwin, так что не путайте. Apache и т. Д. Работают в собственном коде, то есть без уровня эмуляции cygwin) Я ожидал, возможно, тысячу портов, но не больше.

Это моя конфигурация обратного прокси-сервера Apache:

<VirtualHost *:80>
    ServerAdmin ...
    ProxyRequests Off
    ProxyPreserveHost On
    ProxyPass / http://localhost:8080/ connectiontimeout=5 timeout=30
    ProxyPassReverse / http://localhost:8080/ 
    ServerName ...
    ErrorLog "logs/foo.log"
    CustomLog "logs/foo-access.log" common
</VirtualHost>

MPM активен, и я могу использовать до 150 входящих соединений, по крайней мере, это то, что я сужу, глядя на состояние сервера ...

...
1 requests currently being processed, 149 idle workers
...

.. и конфигурация Apache:

<IfModule mpm_winnt_module>
    ThreadsPerChild        150
    MaxConnectionsPerChild   0
</IfModule>

Эта конфигурация заставляет встроенный Tomcat Spring Boot доступ к 500 соединениям:

server.tomcat.access-log-pattern=%h %l %u %t %I "%r" %s %b %D
server.tomcat.access-log-enabled=true
server.tomcat.max-threads=500
server.tomcat.basedir=./tomcat

Так почему так много портов? Я провел нагрузочный тест с JMeter с другого ПК, и когда я вычислял вручную, я ожидал следующих цифр: jmeter-> Apache: 150 подключений на порт 80 Apache-> Tomcat: 150 подключений на порт 8080 (не может превышать 500) Tomcat <- Apache: 150 подключений на порт 8080 (не может превышать 500)

Есть ли в моей настройке ошибка, из-за которой порты не используются повторно?