Как я могу заключить сделку с несколькими прокси? - PullRequest
1 голос
/ 18 февраля 2020

Я работаю над проектом, в котором есть несколько реестров нексусов за разными прокси :

current setup

Как можно Я уверен, что Gradle (или любой связанный с хранилищем инструмент, такой как NPM, maven, et c) может обрабатывать 3+ разных прокси одновременно, чтобы достичь нескольких экземпляров Nexus?

До сих пор мы использовали обходной путь: к 1 нексусу обращались через HTTP-прокси, а 1 - через HTTPS-прокси. Но теперь у нас есть 3 прокси для обработки!

Я думаю, что должна быть возможность добавить машину (экземпляр squid?), Которая перенаправляла бы запросы прокси на правильный прокси, основываясь на имени домена:

target setup

Я не привык к Squid и мне все еще не удалось этого добиться. Может ли кто-нибудь подтвердить, возможно ли (или нет) использование Squid? Кто-нибудь может предложить другое решение?

Просто для справки, эта сетевая настройка обусловлена ​​участием нескольких компаний-партнеров в проекте. У нас есть доступ к каждой компании Nexus через выделенные VPN и прокси.

1 Ответ

0 голосов
/ 19 февраля 2020

ОК, поэтому мне удалось запустить Squid в docker со следующей конфигурацией:

acl host src 10.0.0.0/8
acl host src 172.0.0.0/8

http_access allow host
maximum_object_size 256 MB
maximum_object_size_in_memory 256 MB
dns_nameservers 8.8.8.8 8.8.4.4

acl SSL_ports port 443
acl Safe_ports port 80      # http
acl Safe_ports port 21      # ftp
acl Safe_ports port 443     # https
acl Safe_ports port 70      # gopher
acl Safe_ports port 210     # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280     # http-mgmt
acl Safe_ports port 488     # gss-http
acl Safe_ports port 591     # filemaker
acl Safe_ports port 777     # multiling http

acl CONNECT method CONNECT
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost manager
http_access deny manager
http_access allow localhost
http_access deny all
http_port 3128

cache_peer 10.1.1.1       parent    8080  0 proxy-only no-query name=proxy1
cache_peer 10.2.1.1       parent    8080  0 proxy-only no-query name=proxy2
cache_peer 10.3.1.1       parent    8080  0 proxy-only no-query name=proxy3

acl sites_proxy1 dstdomain .domain1.com
acl sites_proxy2 dstdomain .domain2.com
acl sites_proxy3 dstdomain .domain3.com

cache_peer_access proxy1 deny !sites_proxy1
cache_peer_access proxy2 deny !sites_proxy2
cache_peer_access proxy3 deny !sites_proxy3

coredump_dir /var/spool/squid3

refresh_pattern ^ftp:       1440    20% 10080
refresh_pattern ^gopher:    1440    0%  1440
refresh_pattern -i (/cgi-bin/|\?) 0 0%  0
refresh_pattern (Release|Packages(.gz)*)$      0       20%     2880
refresh_pattern .       0   20% 4320

never_direct allow all

Затем я запускаю docker с помощью этой команды:

docker run --rm --volume ~/DevTools/squid/squid.conf:/etc/squid/squid.conf -v ~/DevTools/squid/logs:/var/log/squid -p 3128:3128 datadog/squid
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...