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

xinet против iptables для производительности перенаправления портов

У меня есть требование запустить веб-сервер на основе Java через порт 80. Возможные варианты:

Базовый план будет запускать приложение с использованием setuid, но я бы предпочел этого не делать по соображениям безопасности. Apache работает слишком медленно, а nginx не поддерживает keep-alives, поэтому для каждого проксированного запроса создаются новые соединения.

xinet легко настроить, но он создает новый процесс для каждого запроса, который, как я видел, вызывает проблемы в высокопроизводительной среде.

Последний вариант - переадресация портов с помощью iptables, но я не знаю, насколько это быстро.

Конечно, идеальным решением было бы сделать это на выделенном аппаратном брандмауэре / балансировщике нагрузки, но в настоящее время это не вариант.

На данный момент все настройки находятся в одном окне, поэтому iptables должен работать.

Загрузка выглядит следующим образом: примерно 2500 очень коротких HTTP-запросов в секунду, максимальная задержка которых должна составлять 50 мс с ... скажем, не менее 25 миллисекунд, чтобы приложение вернуло ответ.

iptables работает внутри самого ядра, что означает, что это будет намного быстрее, чем делегирование на прокси-сервер пользовательского уровня.

Вы можете описать свою установку? Я не совсем понимаю, все ли находится на одном сервере или у вас есть отдельный шлюз и веб-серверы.

Но да, действительно, HAproxy. Лучше всего подходит для балансировки нескольких веб-серверов. Использую для баланса http и smtp.

Я не был бы на 100%, если бы производительность iptables была выше, чем у других решений. Любое правило в цепочках iptables будет подключено ко всему трафику, в то время как прокси-сервер пользователя будет запускаться только при новых подключениях.

Мой совет: протестируйте и сравните его.

Возможны другие варианты фунт или haproxy