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

Как задушить AJP

На Windows я подключаю Apache2 к Tomcat7 через AJP.

Есть ли какая-нибудь конфигурация, которая может ограничить связь?

Это мои worker.properties

worker.list=node1
worker.node1.port=8009
worker.node1.host=127.0.0.1
worker.node1.type=ajp13

Это мой httpd.conf:

<VirtualHost 127.0.0.1:80>
  JkMount /* node1
</VirtualHost>

Нам нужно протестировать индикаторы загрузки и асинхронный запрос в корпоративном приложении AJAX.


mod_bw делает не работать с JkMount.

Насколько мне известно, AJP ни на стороне Apache, ни на стороне Tomcat не выполняет регулировку, а вместо этого пытается передать запрос между уровнями так быстро, как это возможно.

Вот некоторые мысли:

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

Можно ввести больше серверных хостов и распределить между ними работников, чтобы увеличить пропускную способность.

Например, можно ограничить пропускную способность в Tomcat с помощью настраиваемых фильтров, которые могут быть решением для кодирования.

Можно использовать http-коннектор вместо AJP, чтобы использовать сжатие вариант и, возможно, увеличить пропускную способность по тем же соединениям.

Можно ввести управление пропускной способностью на уровне сети, чтобы ограничить пропускную способность AJP-соединения «извне». В Linux это можно сделать изначально с помощью iptables. - предел и - предел-взрыв директивы. Насколько мне известно, в Windows отсутствует собственное решение для регулирования полосы пропускания на уровне сети. К счастью, существуют сторонние надстройки, которые обеспечивают детальный контроль пропускной способности, такие как Netlimiter и Netbalancer.

Если смотреть за пределы ОС, можно запускать соединения через устройство-ограничитель, такое как аппаратный балансировщик нагрузки, но тогда зачем вообще использовать AJP?

Однако важно то, что независимо от того, каким способом вам удастся выполнить регулирование, вы должны видеть, что и Apache, и Tomcat имеют возможность позволить своим очередям запросов / невыполненным журналам увеличиваться, поскольку можно представить, что количество сеансов увеличивается, если запросы выполняются медленнее.

Наконец, IIS имеет собственное регулирование полосы пропускания и может перезаписывать обратный прокси / URL через модуль ARR на серверную часть Tomcat. Я не уверен, доступно ли дросселирование для подключений ARR: ed, но если вы все равно используете Windows, возможно, стоит взглянуть.