Я пытаюсь написать Perl-скрипт для извлечения данных с веб-адреса через прокси-сервер Squid.У меня есть сервер Squid, работающий на CentOS7, прослушивающий порт 3128 и аутентифицирующийся с /usr/lib64/squid/basic_ncsa_auth
.Тем не менее, я продолжаю получать Perl, кажется, полностью обойти прокси и подключается к цели напрямую.
Я смог сделать это с помощью curl, но не с помощью perl.
Я переписал свой сценарий perl несколькими способами.Я обновил версии Perl (в настоящее время на 5.28).
use LWP::UserAgent;
$ENV{'HTTP_PROXY'} = 'http://localhost:3128/';
$ENV{'HTTP_PROXY_USERNAME'} = 'user1';
$ENV{'HTTP_PROXY_PASSWORD'} = 'password1';
$ua = LWP::UserAgent->new();
$ua->proxy('http', 'http://localhost:3128/');
my $req = HTTP::Request->new('GET', 'https://stackoverflow.com');
$req->proxy_authorization_basic("user1", "password1");
my $res = $ua->request($req);
print $res->code ."\n";
Итак, приведенный выше код выдает «200», однако я не вижу записи в моих журналах доступа squid.Когда я пытаюсь выполнить маневр в curl
curl --proxy-user user1:password1 -x http://localhost:3128 https://stackoverflow.com)
, я получаю
1560893906.291 513 ::1 TCP_TUNNEL/200 270148 CONNECT stackoverflow.com:443 user1 HIER_DIRECT/151.101.65.69 -
в журнале доступа.
Очевидно, что я пропускаю какой-то шаг, но я скопировал примеры из документации по Perl и не смог заставить его работать.