---
title: "Servidor proxy em PHP: como configurar proxies em PHP"
slug: php-proxy-servers
date: 2024-02-28T07:56:45+00:00
modified: 2026-04-27T08:42:31+00:00
permalink: https://brightdata.com.br/blog/procedimentos/php-proxy-servers
type: blog
---

[ Blog ](https://brightdata.com.br/blog "Blog") / [procedimentos](https://brightdata.com.br/blog/procedimentos)







 [procedimentos](https://brightdata.com.br/blog/procedimentos)

# Servidor proxy em PHP: como configurar proxies em PHP

Aprenda a configurar um servidor proxy em PHP para aprimorar o web scraping, garantindo segurança e superando bloqueios geográficos.

 3 min de leitura





 [ ![](https://media.brightdata.com.br/2024/02/Marshall-Chikari-50x50.png) ](https://brightdata.com/blog/authors/marshall-chikari)

 [Marshall Chikari

February 28, 2024

 ](https://brightdata.com/blog/authors/marshall-chikari)





 ![PHP Proxy Server How to Set Up Proxies in PHP](https://media.brightdata.com.br/2024/02/PHP-Proxy-Server-How-to-Set-Up-Proxies-in-PHP.svg)





Ao se conectar a uma rede, um endereço IP serve como um identificador exclusivo, facilitando a comunicação e a identificação dentro dessa rede e pela internet. Um servidor proxy atua como intermediário entre o dispositivo do usuário e a internet, melhorando a segurança, a privacidade e o desempenho ao gerenciar solicitações e ocultar o endereço IP do usuário.

Os servidores proxy garantem o anonimato e ajudam a filtrar ameaças mascarando seu IP e controlando o acesso ao site. Quando se trata especificamente de web scraping, os servidores proxy desempenham um papel crucial, ajudando os usuários a contornar os banimentos de IP e a evitar medidas de bloqueio geográfico.

Neste tutorial, você aprenderá mais sobre proxies e como configurar um servidor proxy para web scraping em PHP.

## <a></a>Usando um servidor proxy em PHP

Se você quiser configurar um servidor proxy, há várias maneiras de fazer isso. Você pode usar aplicativos de servidor como Apache ou Nginx como servidores proxy de encaminhamento, ou pode optar por ferramentas de proxy dedicado, como Squid. Neste tutorial, você usará o Apache como servidor proxy.

Para configurar um servidor proxy para [web scraping em PHP](https://brightdata.com.br/blog/procedimentos/web-scraping-php), você precisa ter certeza de que o PHP está instalado em seu sistema. Se você ainda não o instalou, siga [a documentação oficial](https://www.php.net/manual/en/install.php) para fazer isso. Este artigo usa Ubuntu como sistema operacional.

### <a></a>Configurar um servidor proxy com o Apache

No Apache, os módulos [`mod_proxy`](https://httpd.apache.org/docs/2.4/mod/mod_proxy.html), [`mod_proxy_http`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_http.html)e [`mod_proxy_connect`](https://httpd.apache.org/docs/2.4/mod/mod_proxy_connect.html) podem ser usados para fazer o Apache atuar como um servidor proxy.

Para configurar o servidor proxy, você precisa começar ativando os módulos:

```none
sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_connect

```

Em seguida, você precisa criar um novo arquivo `VirtualHost` onde definirá o servidor proxy:

```none
cd /etc/apache2/sites-available/
sudo cp 000-default.conf proxy.conf

```

No arquivo `proxy.conf` , cole o seguinte código:

```none
<VirtualHost *:80>
    ServerName localhost
    ServerAdmin admin@localhost
    <IfModule mod_ssl.c>
            SSLEngine off
    </IfModule>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    ProxyRequests On
    ProxyVia On
    <Proxy *>
        Order deny,allow
        Allow from all
    </Proxy>
</VirtualHost>

```

Nesse código, `ProxyRequests On` permite que o Apache seja um servidor proxy de encaminhamento. `ProxyVia On` adiciona um cabeçalho `Via` que ajuda a inspecionar o caminho da solicitação em uma cadeia de proxies. Além disso, o bloco de controle `<Proxy>` declara quem tem permissão para acessar o proxy. Qualquer host tem permissão para acessar o servidor proxy.

Para obter informações mais detalhadas, confira as [documentações oficiais](https://httpd.apache.org/docs/2.4/mod/mod_proxy.html#proxy).

Para concluir a configuração do servidor proxy, habilite o `VirtualHost`:

```none
sudo a2ensite proxy.conf
service apache2 reload

```

### <a></a>Usando o servidor proxy

Na seção a seguir, você aprenderá a usar o servidor proxy no código PHP. Normalmente, qualquer solicitação web ou estrutura de automação fornece um mecanismo para definir proxies. Neste artigo, você aprenderá sobre três métodos: curl, `file_get_contents`e Symfony BrowserKit.

#### <a></a>Definir proxies em curl

O primeiro método que você aprenderá mostra como integrar proxies em seu script PHP usando a biblioteca [`cURL` ](https://www.php.net/manual/en/book.curl.php), uma ferramenta poderosa para fazer solicitações HTTP.

Crie um arquivo chamado `curl.php` com o seguinte código:

```none
<?php

$proxyUrl = 'http://localhost:80';
$targetUrl = 'https://httpbin.org/get';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $targetUrl);
curl_setopt($ch, CURLOPT_PROXY, $proxyUrl);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

```

Esse script inicia uma sessão curl, define o URL de destino e o URL do proxy usando `curl_setopt`e executa a sessão para recuperar a resposta. A opção `CURLOPT_PROXY` define o proxy. O URL do proxy está definido como `localhost:80`, o que aproveita o proxy que você criou na etapa anterior.

Para simplificar, o script também inclui opções para desativar a verificação SSL. No entanto, tenha cautela em um ambiente de produção. Quaisquer erros de curl encontrados durante a execução são exibidos para fins de depuração.

Execute o script com o comando `php curl.php`.

Depois de executar o script, você pode inspecionar o arquivo de log de acesso do Apache para rastrear a solicitação feita ao proxy. O arquivo de log de acesso normalmente se encontra em `/var/log/httpd/access.log`.

Neste arquivo de log, você encontrará uma entrada usando o protocolo `CONNECT` correspondente ao script executado, indicando que a solicitação foi processada com sucesso, apresentando o código de status HTTP número 200:

```none
127.0.0.1 - - [21/Dec/2023:12:34:56 +0530] "CONNECT httpbin.org:443 HTTP/1.1" 200 -

```

#### <a></a>Definir proxies em file\_get\_contents

Você também pode usar `file_get_contents` para configurar proxies em PHP e depois aproveitar o proxy Apache para buscar conteúdo.

Para fazer isso, crie um arquivo `file_get_contents.php` e adicione o seguinte código:

```none
<?php

$options = [
    'http' => [
        'proxy' => 'tcp://127.0.0.1:80',
        'request_fulluri' => true,
    ],
];
$context = stream_context_create($options);

$response = file_get_contents('https://httpbin.org/get', false, $context);

if ($response === false) {
    echo "Failed to retrieve data from $url";
} else {
    echo $response;
}

```

Esse código PHP inicia uma solicitação HTTP para recuperar os dados de `http://wikipedia.org` usando um servidor proxy especificado. Os detalhes do servidor proxy são configurados no array `$options` , em que a chave “proxy” define o endereço do servidor (“tcp: //127.0.0. 1:80”) e `request_fulluri` é definido como true (verdadeiro), tratando o URI da solicitação como um URI completo.

Um contexto de stream que adiciona essas opções é criado usando-se `stream_context_create`. A solicitação HTTP real é feita com `file_get_contents`, que adiciona o contexto criado e resulta na recuperação do conteúdo de `HttpBin`.

#### <a></a>Definir proxies no Symfony BrowserKit

Se você é usuário do Symfony , é fácil integrar proxies com o [BrowserKit](https://symfony.com/doc/current/setup.html).

Se você quiser acompanhar as etapas e ainda não tiver o Symfony instalado, certifique-se de [instalá-lo agora](https://symfony.com/doc/current/setup.html).

Depois que o Symfony estiver configurado, você poderá facilmente usar proxies em seu código PHP:

```none
<?php

require './vendor/autoload.php';

use SymfonyComponentBrowserKitHttpBrowser;
use SymfonyComponentHttpClientHttpClient;

$proxyServer = 'http://127.0.0.1';
$proxyPort = '80';

$client = new HttpBrowser(HttpClient::create(['proxy' => sprintf('%s:%s', $proxyServer, $proxyPort)]));

$client->request('GET', 'https://httpbin.org/get');

$content = $client->getResponse()->getContent();

echo $content;

```

Esse bloco de código usa o Symfony BrowserKit e `HttpClient` para fazer uma solicitação `GET` para `HttpBin` por meio do proxy Apache configurado em `$proxyUrl`. Em seguida, o conteúdo da resposta é recuperado e exibido. A instância `HttpBrowser` é preparada com as configurações de proxy especificadas, facilitando a integração de proxies em aplicações Symfony.

## <a></a>Limitações dos métodos tradicionais de integração de proxy

Embora a configuração de proxies em PHP possa parecer simples, os vários métodos vêm com certas limitações. Por exemplo, embora seja possível alternar entre diferentes proxies manualmente, essa é uma abordagem ineficiente ao coletar grandes quantidades de dados.

Além disso, se o proxy ficar indisponível ou o IP for restringido ou encontrar problemas, esses métodos não fornecem inerentemente um mecanismo para mudar automaticamente para um proxy alternativo. Isso resulta em interrupções no serviço ou falhas na recuperação de dados que exigem intervenção manual. Embora você possa escrever código para alternar proxies automaticamente, é um processo complicado e você precisará configurar ou alugar vários servidores proxy em diferentes regiões geográficas para obter a máxima segurança.

A boa notícia é que a Bright Data pode ajudar.

## <a></a>O servidor proxy da Bright Data

A Bright Data é uma plataforma de extração de dados da web que oferece ferramentas para web scraping e coleta de dados em grande escala. Por exemplo, a coleção robusta de [servidores proxy](https://brightdata.com.br/proxy-types/proxy-servers) da Bright Data no mundo todo oferece acesso a diversos endereços IP que podem ajudar você a superar bloqueios geográficos e banimentos de IP.

Além disso, os proxies da Bright Data sob demanda podem ajudar você a adquirir dinamicamente os recursos de que precisa, quando necessário. Isso é útil em cenários de web scraping em que seus requisitos flutuam, garantindo desempenho e capacidade de resposta ideais. A Bright Data oferece diferentes tipos de proxies (*ou seja,* proxies residenciais, proxies de datacenters, proxies de ISPs e proxies móveis) que garantem que você tenha o proxy mais adequado ao seu caso de uso.

Uma das principais vantagens da solução da Bright Data é a [rotação de proxies](https://brightdata.com.br/solutions/rotating-proxies) automatizada, que contribui para melhorar o anonimato e mitigar os riscos de detecção durante atividades de web scraping. Esse recurso, juntamente com o acesso a uma rede avançada de proxies de datacenters com mais de 770.000 IPs em todo o mundo, torna a Bright Data uma escolha superior para web scraping.

### <a></a>Usando o proxy da Bright Data com PHP

Usar a Bright Data é fácil. Tudo o que você precisa fazer é se inscrever para uma conta gratuita.

Depois de criar uma conta, clique em **Proxies and Scraping Infra** (infraestrutura de proxies e scraping) na barra lateral e selecione **Get Started** (começar) em **Residential Proxies** (proxies residenciais):

![Configuração de proxy residencial da Bright Data](https://media.brightdata.com.br/2024/02/Bright-Data-residential-proxy-configuration.png)Aqui, você pode configurar o proxy, por exemplo, escolher entre **Dedicated** (dedicado) e **Shared** proxies (proxies compartilhados):

![Escolhendo a configuração do proxy](https://media.brightdata.com.br/2024/02/Choosing-the-proxy-configuration.png)Depois de escolher sua configuração de proxy, ative o serviço de proxy clicando em **Save** (salvar). A Bright Data fornece credenciais de login exclusivas:

![Credenciais de login da Bright Data](https://media.brightdata.com.br/2024/02/Bright-Data-login-credentials.png)Com os dados do seu proxy Bright Data, você pode usá-lo para extrair dados da Wikipedia. Comece criando um arquivo `scrape.php` e adicionando o seguinte código:

```none
<?php

// BrightData proxy details
$proxyUrl = 'Your-proxy-url-from-the access-paramaters';
$proxyUser = 'Your-username:Your-password';

$targetUrl = 'https://en.wikipedia.org/wiki/Proxy_server';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $targetUrl);
curl_setopt($ch, CURLOPT_PROXY, $proxyUrl);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUser);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    $dom = new DOMDocument();
    @$dom->loadHTML($response);

    $content = $dom->getElementById('mw-content-text')->textContent;

    $headings = [];
    $headingsNodeList = $dom->getElementsByTagName('h2');
    foreach ($headingsNodeList as $heading) {
        $headings[] = $heading->textContent;
    }

    $headingsNodeList = $dom->getElementsByTagName('h3');
    foreach ($headingsNodeList as $heading) {
        $headings[] = $heading->textContent;
    }

    echo "Content:n";
    echo $content . "nn";

    echo "Headings:n";
    foreach ($headings as $index => $heading) {
        echo ($index + 1) . ". $headingn";
    }
}

curl_close($ch);

```

> Certifique-se de substituir `Your-proxy-url-from-the-access-parameters`, `Your-username`e `Your-password` por suas credenciais específicas.

Nesse código, os dados do proxy são integrados à solicitação curl para garantir que o web scraping seja feito por meio da rede de proxies da Bright Data.

Em seguida, execute `php scrape.php` em seu terminal. Aqui estão os resultados extraídos:

![Resultados de dados extraídos da Wikipedia usando a Bright Data](https://media.brightdata.com.br/2024/02/Results-of-scraped-data-from-Wikipedia-using-Bright-Data.png)Para confirmar que suas solicitações estão sendo encaminhadas pelo proxy da Bright Data, você pode tentar enviar uma solicitação GET para <http://lumtest.com/myip.json>. Se você abrir isso em seu navegador, ele responderá com um objeto JSON contendo os detalhes do seu ISP local.

Para testar com um proxy da Bright Data, salve o código a seguir em um novo arquivo PHP e execute-o:

```none
<?php

// BrightData proxy details
$proxyUrl = 'brd.superproxy.io:22225';
$proxyUser = 'brd-customer-hl_0c2320f1-zone-residential_proxy1:j30hm0h2pqde';

$targetUrl = 'http://lumtest.com/myip.json';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $targetUrl);
curl_setopt($ch, CURLOPT_PROXY, $proxyUrl);
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyUser);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

$response = curl_exec($ch);

if (curl_errno($ch)) {
    echo 'cURL Error: ' . curl_error($ch);
} else {
    echo $response;
}

curl_close($ch);

```

A saída deve mostrar a localização e outros detalhes do proxy que está sendo usado:

```none
{"ip":"91.66.16.153","country":"DE","asn":{"asnum":3209,"org_name":"Vodafone GmbH"},"geo":{"city":"Berlin","region":"BE","region_name":"Land Berlin","postal_code":"12205","latitude":52.428,"longitude":13.3095,"tz":"Europe/Berlin","lum_city":"berlin","lum_region":"be"}}

```

Isso confirma que a solicitação está realmente sendo roteada pelos servidores proxy da Bright Data.

## <a></a>Conclusão

Nesse tutorial, você explorou vários métodos para configurar um servidor proxy em PHP. Embora os servidores proxy locais com Apache sejam uma opção, aproveitar os servidores proxy da Bright Data traz um novo nível de eficiência e versatilidade.

Os servidores proxy da Bright Data oferecem uma rede proxy global abrangente, garantindo acesso a uma ampla variedade de IPs, incluindo proxies[ residenciais](https://brightdata.com.br/proxy-types/residential-proxies), de [ISPs](https://brightdata.com.br/proxy-types/isp-proxies), de [datacenters](https://brightdata.com.br/proxy-types/datacenter-proxies) e [móveis](https://brightdata.com.br/proxy-types). Além disso, a [rotação de proxies](https://brightdata.com.br/solutions/rotating-proxies) da Bright Data contribui para melhorar o anonimato e a mitigação dos riscos de detecção durante atividades de web scraping.

Se você é um novato em busca de simplicidade ou um desenvolvedor experiente que precisa de recursos avançados, os servidores proxy da Bright Data fornecem uma base robusta para empreendimentos de web scraping bem-sucedidos e eficientes.



Contate-nosTeste grátis![google social icon](/wp-content/themes/brightdata/assets/images/ic_google.svg)









 Índice







Dedicated Scraper APIs &amp; No-Code Scrapers

Over 1000 scrapers for all popular domains. Simplify your web scraping.

[See pricing](/pricing/web-scraper "See pricing")

Just want data? Skip scraping.

Hundreds of ready-to-use datasets from all popular domains.

[See pricing](/pricing/datasets "See pricing")







 [ ](https://news.ycombinator.com/submitlink?t=Servidor+proxy+em+PHP%3A+como+configurar+proxies+em+PHP&u=https://brightdata.com.br/blog/procedimentos/php-proxy-servers) [ ](https://www.linkedin.com/shareArticle?mini=true&title=Servidor+proxy+em+PHP%3A+como+configurar+proxies+em+PHP&url=https://brightdata.com.br/blog/procedimentos/php-proxy-servers) [ ](http://www.reddit.com/submit?title=Servidor+proxy+em+PHP%3A+como+configurar+proxies+em+PHP&url=https://brightdata.com.br/blog/procedimentos/php-proxy-servers)







##  Você também pode estar interessado em

 [ ![curl GET Request with PHP](https://media.brightdata.com.br/2023/11/curl-GET-Request-with-PHP.svg) ](https://brightdata.com.br/blog/procedimentos/curl-get-request-with-php "Pedido GET com curl em PHP")

 [procedimentos



 ![](https://media.brightdata.com.br/2023/08/Kevin-Kimani-50x50.png)

Kevin Kimani





### Pedido GET com curl em PHP

Guia de pedidos get com cURL em PHP. Saiba mais sobre o pedido GET e como implementar um pedido GET com curl em PHP.



 22-Nov-2023

 4 min de leitura

 ](https://brightdata.com.br/blog/procedimentos/curl-get-request-with-php)

 [ ![Best scraping proxies](https://media.brightdata.com.br/2023/07/Best-web-scraping-proxies.svg) ](https://brightdata.com.br/blog/proxies-101/best-scraping-proxies-guide "Melhores proxies para web scraping: um guia completo")

 [Proxy 101



 ![Antonello Zanini](https://media.brightdata.com.br/2022/12/Antonello-Zanini-2-50x50.jpg)

Antonello Zanini

Technical Writer





### Melhores proxies para web scraping: um guia completo

Quais são os melhores proxies para scraping? Saiba mais sobre os diferentes tipos de proxy e veja qual tipo de proxy é mais adequado às suas necessidades de web scraping.



 25-Jul-2023

 9 min de leitura

 ](https://brightdata.com.br/blog/proxies-101/best-scraping-proxies-guide)

 [ ![Web scraping with PHP](https://media.brightdata.com.br/2022/09/Web-scraping-with-PHP.svg) ](https://brightdata.com.br/blog/procedimentos/web-scraping-php "Web scraping com PHP: um guia passo a passo")

 [procedimentos



 ![](https://media.brightdata.com.br/2023/07/Aniket-Bhattacharyea-50x50.png)

Aniket Bhattacharyea





### Web scraping com PHP: um guia passo a passo

Aprenda a criar e programar facilmente seu próprio web scraper simples em PHP, do zero.



 17-Jul-2023

 2 min de leitura

 ](https://brightdata.com.br/blog/procedimentos/web-scraping-php)
