Алгоритм циклического перебора Squid cache_peer не работает должным образом

У меня есть одноранговых HTTP-прокси, и мне нужно равномерно распределять свои запросы между ними, поэтому я добавил несколько директив cache_peer и установить циклический перебор как алгоритм выбора однорангового узла. Это моя конфигурация:

# Basic configuration
visible_hostname squid_proxy_1
unique_hostname squid_proxy_1

http_port 3130
pid_filename /vagrant/squid_proxy_1.pid


cache deny all
http_access allow all

# Proxies
cache_peer MY_PROXY_HOST parent PROXY_PORT 0 round-robin no-query name=FIRST login=MY_PROXY_LOGIN-1:PASSWORD1
cache_peer MY_PROXY_HOST parent PROXY_PORT 0 round-robin no-query name=SECOND login=MY_PROXY_LOGIN-2:PASSWORD2
cache_peer MY_PROXY_HOST parent PROXY_PORT 0 round-robin no-query name=THIRD login=MY_PROXY_LOGIN-3:PASSWORD3

never_direct allow all

Но я столкнулся со следующей проблемой: Вот как выглядит мой access.log :

sudo tail -f /var/log/squid3/access.log
1460977613.775  23783 127.0.0.1 TCP_MISS/200 11371 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977621.171   4843 127.0.0.1 TCP_MISS/200 11413 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977628.367   5583 127.0.0.1 TCP_MISS/200 11412 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977634.270   4726 127.0.0.1 TCP_MISS/200 11354 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977642.429   6531 127.0.0.1 TCP_MISS/200 12841 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977645.563   1747 127.0.0.1 TCP_MISS/200 11360 GET http://www.google.com/ - ROUNDROBIN_PARENT/104.131.79.140 text/html
1460977653.731   7242 127.0.0.1 TCP_MISS/200 11408 GET http://www.google.com/ - ROUNDROBIN_PARENT/107.170.96.123 text/html
1460977658.559   3763 127.0.0.1 TCP_MISS/200 11374 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977660.516   1387 127.0.0.1 TCP_MISS/200 11398 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977662.863   1758 127.0.0.1 TCP_MISS/200 11414 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977664.667   1305 127.0.0.1 TCP_MISS/200 11419 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977676.157  10901 127.0.0.1 TCP_MISS/200 11384 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977678.565   1348 127.0.0.1 TCP_MISS/200 11321 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html
1460977681.742   2516 127.0.0.1 TCP_MISS/200 11383 GET http://www.google.com/ - ROUNDROBIN_PARENT/45.55.163.40 text/html

Это происходит ТОЛЬКО ЕСЛИ Я ИСПОЛЬЗУЮ ЭТИ ОСОБЕННЫЕ P2P ПРОКСИ . Я попробовал ту же конфигурацию с бесплатными прокси, которую нашел в интернированном, и все работало нормально.

Думаю, проблема в том, что Squid может счесть мои прокси мертвыми (потому что они действительно иногда могут быть очень медленными), и поэтому мы не направляет им трафик, но я не уверен.

Есть ли способ получить дополнительную информацию об алгоритме выбора однорангового узла? Могу ли я как-нибудь настроить параметры cache_peer , чтобы решить эту проблему?

2
задан 20 April 2016 в 19:21
1 ответ

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

server_persistent_connections off

Огромное спасибо @BillThor , который помог мне в разделе комментариев.

0
ответ дан 3 December 2019 в 14:29

Теги

Похожие вопросы