Squid максимальное количество ips ограничено до 128

У меня проблема с поиском решения проблемы с прокси-сервером squid. Я использую Centos 6.7 с последней версией Squid для моей ОС. Я почти уверен, что это скорее проблема linux, но может быть настройка squid, которую я еще не нашел, но в основном, когда я настраиваю squid, я использую включаемые файлы для каждой конфигурации ip / port. Поэтому внутри моего файла squid.conf я добавляю одну строку, чтобы включить все файлы в одну из моих подкаталогов, например:

include /etc/squid/ips/*.conf

и мои файлы выглядят так: acl proxyport3128 myportname 3128 src 0.0.0.0/32 http_access allow proxyport3128 tcp_outgoing_address xxxx proxyport3128 http_port xxxx:3128 name=3128

Это работает нормально, я даже могу использовать ipv6 в качестве исходящего адреса, никаких проблем там нет, но если я добавлю более 128 файлов в этот каталог или даже создаю 1 файл для всех вышеперечисленных конфигов, он примет первые 128 он находит и игнорирует все остальное, без ошибок, как и у конфигов ip даже нету.

Я сталкивался с подобной проблемой linux, когда пытался добавить более одного количества адресов ipv6 на один и тот же сервер, в этом случае мне пришлось изменить настройку в /etc/sysctl.conf, моя интуиция говорит мне, что может быть настройкой либо в этом конфигурационном файле, либо в другом месте, о котором я не знаю.

Если есть обходной путь, пожалуйста, поделитесь, в противном случае я могу обратиться к мультиэкземплярному способу использования squid (пока ничего не знаю об этом) или ротации файлов конфигурации и перезагрузки squid. Многочисленные tcp_outgoing_addresses также могут помочь в решении этой проблемы, но больше я хочу понять ограничение и то, что причиной является проблема в squid или linux. Спасибо!

1 ответ

У меня была та же самая проблема, и после некоторого исследования я нашел решение, однако это идет с ценой. Во-первых, да, есть ограничение в 128 соединений. Позвольте мне процитировать

Для каждого прочитанного пакета Squid должен проверить список прослушивающих портов, чтобы увидеть, является ли это операцией read() или accept(). Выполнение даже 128 проверок на пакет расширяет границы для разумной потери производительности.

Вот почему есть предел. Если вы хотите удалить его, вы можете сделать это, собрав последнюю версию Squid с помощью: ./configure CXXFLAGS="-DMAXTCPLISTENPORTS=XXX"где XXX - ваш новый лимит

Ответ основан на: http://squid-web-proxy-cache.1019090.n4.nabble.com/squid-with-multiple-ips-is-listenting-to-some-ips-with-port-and-not-all-of-ips-td4668784.html

Другие вопросы по тегам