Como configurar um proxy reverso (passo a passo para Nginx e Apache)

Publicados: 2020-08-14

Um proxy reverso fica na frente de um servidor web e recebe todas as solicitações antes que elas cheguem ao servidor de origem. Ele funciona de forma semelhante a um proxy de encaminhamento, exceto que neste caso é o servidor web usando o proxy em vez do usuário ou cliente. Os proxies reversos geralmente são usados ​​para aprimorar o desempenho, a segurança e a confiabilidade do servidor web.

Por exemplo, você pode ter um site não WordPress hospedado no domínio example.com no Servidor A e ter seu blog em execução no WordPress no URL example.com/blog hospedado no Servidor B. Você pode conseguir isso adicionando um proxy reverso para o servidor que hospeda seu site principal. Você pode configurar o proxy reverso para redirecionar as solicitações do blog para um servidor diferente (por exemplo, um host WordPress gerenciado como Kinsta).

Neste artigo, você aprenderá o básico dos servidores proxy reversos, como eles funcionam, quais são seus principais benefícios e como você pode usá-los para acelerar e proteger seu site WordPress.

Excitado? Vamos começar!

O que é um proxy reverso?

Para entender o que é um servidor proxy reverso, você precisa primeiro conhecer sua função e se familiarizar com todos os seus termos relacionados.

Quando você navega na web normalmente digitando um nome de domínio ou clicando em um link, seu navegador/dispositivo se conecta diretamente ao servidor do site e começa a baixar seus recursos.

Infográfico mostrando como a internet é navegada normalmente
Como a navegação na internet funciona normalmente

Se você deseja anonimizar seu endereço IP dos sites que visita, pode usar um servidor proxy para enviar todas as suas solicitações primeiro. Ele encaminhará suas solicitações para o resolvedor de DNS e, em seguida, fará o download dos recursos do site de seu servidor de origem.

Depois, ele passará esses recursos para o seu dispositivo. Isso é chamado de proxy de encaminhamento.

Infográfico mostrando como funciona um proxy de encaminhamento
Como funciona um servidor proxy de encaminhamento

Você está completamente oculto do site, pois ele pensa que sua solicitação é originária do proxy de encaminhamento.

Além de melhorar a privacidade do usuário, um proxy de encaminhamento é usado principalmente para contornar as restrições de conteúdo geográfico. Por exemplo, se você deseja assistir a um vídeo bloqueado em sua região, pode usar um proxy de encaminhamento com um endereço IP no qual o vídeo está disponível para visualização.

Um proxy de encaminhamento funciona quase da mesma maneira que uma Rede Privada Virtual (VPN), mas são tecnologias distintas com casos de uso exclusivos (embora às vezes possam se sobrepor).

Servidor proxy reverso vs servidor proxy de encaminhamento

Um servidor de proxy reverso atua como uma fachada para o servidor de origem para manter o anonimato e aumentar a segurança, assim como um usuário/cliente pode usar um proxy de encaminhamento para obter o mesmo. Ele garante que nenhum usuário ou cliente se comunique diretamente com o servidor de origem.

Infográfico mostrando como funciona um proxy reverso
Como funciona um servidor proxy reverso

A diferença entre um proxy direto e um proxy reverso é pequena, mas eles funcionam de maneira diferente.

Ambos podem trabalhar juntos, pois não há sobreposição entre seu funcionamento. Normalmente, os usuários/clientes usam um proxy de encaminhamento, enquanto os servidores de origem usam um proxy reverso.

Infográfico mostrando as diferenças entre Forward Proxy vs Reverse Proxy
Servidores de proxy de encaminhamento vs proxy reverso

Como um administrador de servidor pode controlar como o proxy reverso funciona, você pode usá-lo para habilitar muitos recursos úteis.

Listaremos todos os seus benefícios mais adiante neste post.

Por que usar um proxy reverso?

Muitas empresas, especialmente grandes empresas, usam sites sob medida que são feitos sob medida para suas necessidades exclusivas e não são executados no WordPress. Alguns exemplos incluem sites de bancos e seguros.

Em outros casos, uma empresa pode hospedar seu site em um serviço externo que não permite a instalação de nenhum software externo (por exemplo, WordPress). Normalmente, são varejistas de pequeno e médio porte que usam uma plataforma de comércio eletrônico como Shopify.

Como o WordPress possui recursos robustos de CMS, muitas empresas, incluindo grandes empresas com sites sob medida, podem preferir hospedar seus blogs usando o WordPress.

Uma maneira de contornar esse problema é instalar o WordPress no subdomínio do site principal e estruturar os menus de navegação de forma que os usuários possam alternar facilmente entre o site principal e o blog.

Como os subdomínios se comportam como um domínio exclusivo, isso pode afetar o SEO do seu site. Embora o Google trate os subdomínios e os subdiretórios igualmente, é preciso mais esforço para otimizar um site para classificações de mecanismos de pesquisa se ele estiver hospedado em um subdomínio do que se estiver hospedado em um subdiretório.

Duas abordagens para hospedar um site alternativo com o mesmo nome de domínio
Duas abordagens para hospedar blogs em um site

O Google reafirmou que trata os subdomínios e subdiretórios igualmente, mas alguns especialistas em SEO discordam disso. E mesmo que isso não afete o SEO do site, um site hospedado em um subdiretório é simplesmente mais fácil de manter.

É por isso que você pode usar um proxy reverso para redirecionar solicitações para o blog do site hospedado em um servidor separado. Por exemplo, um banco pode hospedar seu site principal em seus servidores com segurança, mas também pode hospedar seu blog com WordPress separadamente em um host WordPress gerenciado como Kinsta.

Um exemplo de um caso de uso de servidor proxy reverso
Um exemplo de um caso de uso de proxy reverso

Unificar dois sites diferentes em um único nome de domínio é uma das principais vantagens de usar um proxy reverso. Isso ajuda as marcas a manter seus sites organizados, profissionais e manter a credibilidade.

Saiba como um proxy reverso pode melhorar ️ desempenho, segurança e confiabilidade... tudo neste guia ️ Click to Tweet

Benefícios de usar um proxy reverso

Além do caso de uso acima, os proxies reversos também oferecem muitos outros benefícios. A seção abaixo discute algumas de suas principais vantagens.

Balanceamento de carga

Um único servidor de origem não pode lidar com todo o tráfego de entrada de um site com milhões de visitantes únicos diários. Nesses casos, você pode distribuir o tráfego de maneira inteligente entre um pool de vários servidores. Normalmente, todos os servidores hospedarão o mesmo conteúdo para eliminar um único ponto de falha, tornando o site mais confiável.

Um proxy reverso é uma ótima maneira de configurar isso, pois pode receber o tráfego de entrada antes de chegar ao servidor de origem. Se o servidor de origem estiver sobrecarregado ou falhar completamente, ele poderá distribuir o tráfego para outros servidores sem afetar a funcionalidade do site.

Os proxies reversos também podem direcionar as solicitações recebidas para vários servidores, com cada servidor executando uma função específica para a qual foi otimizado. O proxy reverso pode então reunir respostas de todos os servidores e entregá-las ao cliente.

Como usamos a maioria dos proxies reversos populares principalmente para balanceamento de carga, eles também são chamados de Load Balancers .

Balanceamento de carga global do servidor (GSLB)

O GSLB é um método avançado de balanceamento de carga para distribuir o tráfego do site entre muitos servidores localizados estrategicamente ao redor do mundo. Normalmente é feito através da técnica de roteamento anycast, onde o proxy reverso escolhe o nó do servidor com base no tempo de viagem mais rápido entre o cliente e o servidor.

O GSLB não apenas aumenta consideravelmente a confiabilidade e a segurança do site, mas também reduz a latência e os tempos de carregamento, aprimorando assim a experiência do usuário. Você pode usar o GSLB com outras técnicas de otimização de rede, como Spoon Feeding, para liberar ainda mais os recursos computacionais dos servidores de origem.

Embora você possa configurar o balanceamento de carga de servidor global manualmente em seu servidor, geralmente é feito por CDNs dedicados, como Cloudflare e KeyCDN (que também alimenta o Kinsta CDN). Kinsta atende a todos os sites hospedados com ele por meio de um balanceador de carga desenvolvido pelo Google Cloud Platform.

Segurança melhorada

Os proxies reversos podem ocultar o endereço IP e outras características dos servidores de origem. Assim, o servidor de origem do seu site pode manter melhor seu anonimato, aumentando significativamente sua segurança.

Como o proxy reverso receberá todo o tráfego antes de chegar ao servidor principal, qualquer invasor ou hacker achará mais difícil atingir seu site com ameaças de segurança, como ataques DDoS.

Você pode usar um firewall estrito para proteger o proxy reverso com segurança mais rígida contra ataques cibernéticos comuns. Sem um proxy reverso instalado, é difícil remover malware ou iniciar remoções.

Um proxy reverso como o HAProxy pode adicionar autenticação básica de acesso HTTP a um servidor web que não o tenha habilitado. Você também pode usar um proxy reverso para adicionar autenticação centralizada para vários tipos de solicitações.

Cache Poderoso

Você pode usar um proxy reverso para fins de aceleração da Web armazenando em cache o conteúdo estático e dinâmico. Isso pode reduzir a carga no servidor de origem, resultando em um site mais rápido.

Por exemplo, se seu servidor de origem estiver nos EUA e um usuário da Europa visitar seu site, você poderá veicular uma versão em cache do seu site a partir de um servidor proxy reverso na Europa. Como o proxy reverso está mais próximo do usuário do que o servidor de origem, o site levará menos tempo para carregar, fazendo com que tenha um desempenho excelente.

Varnish e Nginx FastCGI são exemplos proeminentes de proxies reversos usados ​​para armazenar em cache o conteúdo da web. Se o seu site está hospedado com Kinsta, você não precisa se preocupar com o cache, pois Kinsta cuida de todo o trabalho de cache para você.

Compressão Superior

As respostas do servidor consomem muita largura de banda. A compactação das respostas do servidor (por exemplo, com gzip) antes de enviá-las ao cliente pode reduzir a quantidade de largura de banda necessária, acelerando as respostas do servidor na rede.

Um proxy reverso é ideal para compactar as respostas do servidor, pois fica entre os servidores de origem e o cliente.

Criptografia SSL Otimizada

Criptografar e descriptografar solicitações SSL/TLS para cada cliente pode ser altamente desgastante para o servidor de origem. Um proxy reverso pode assumir essa tarefa para liberar os recursos do servidor de origem para outras tarefas importantes, como veicular conteúdo.

Outra vantagem de descarregar a criptografia e a descriptografia SSL/TSL é reduzir a latência para clientes geograficamente distantes do servidor de origem.

Você também pode optar por um proxy reverso com hardware de aceleração SSL/TLS especializado para otimizar ainda mais essa tarefa. Esse proxy reverso é chamado de proxy de terminação SSL/TLS. Alguns servidores como o Varnish não suportam protocolos SSL/TSL, portanto, um proxy reverso de terminação SSL/TSL pode ajudar a proteger o tráfego que passa por eles.

Melhor teste A/B

A maioria das ferramentas de teste A/B exige que você use bibliotecas JavaScript externas para carregar suas funções. No entanto, o carregamento de scripts de terceiros pode diminuir o tempo de carregamento da página e criar uma experiência instável para os usuários.

Em vez disso, você pode usar um proxy reverso para criar dois fluxos separados no próprio nível do servidor. Por exemplo, você pode usar split_clients do Nginx ou métodos de sticky route fixa para controlar o redirecionamento de tráfego.

Você pode consultar os tutoriais sobre Nginx e freeCodeCamp para saber mais sobre como realizar testes A/B com um proxy reverso.

Monitoramento e registro de tráfego

Um proxy reverso captura todas as solicitações que passam por ele. Portanto, você pode usá-los como um hub central para monitorar e registrar o tráfego. Mesmo se você usar vários servidores da Web para hospedar todos os componentes do seu site, o uso de um proxy reverso facilitará o monitoramento de todos os dados de entrada e saída do seu site.

Os proxies reversos mais populares

De acordo com a W3Techs, quase 83% dos sites não usam serviços de proxy reverso que eles monitoram.

Estatísticas de proxies reversos usados ​​por sites
Estatísticas de proxies reversos usados ​​por sites (Fonte: W3Techs.com)

Dos 17% dos sites que usam proxy reverso (listados acima), você notará que a maioria deles são CDNs. Isso ocorre porque a maioria dos proxies reversos oculta sua existência por padrão como medida de segurança. Portanto, você não pode confiar em serviços de monitoramento de sites como o W3Techs para descobrir quais proxies reversos são os mais populares.

De nossa pesquisa e experiência, os proxies reversos mais populares em uso hoje são:

Nginx

Nginx é um servidor web de código aberto que também pode servir como proxy reverso. Além de ser usado para hospedar sites, também é uma das soluções de proxy reverso e balanceamento de carga mais usadas. De acordo com a Netcraft, mais de 479 milhões de servidores web estavam usando o Nginx em dezembro de 2019, tornando-o líder na participação de mercado de servidores web.

Participação no mercado de servidores Web de todos os sites conforme Netcraft
Participação no mercado de servidores Web de todos os sites (Fonte: Netcraft)

O Nginx fornece todos os benefícios do proxy reverso discutidos acima, além de muito mais. Melhora o desempenho, a segurança, a confiabilidade e a escalabilidade da Web. Você pode configurar o Nginx usando seu arquivo de configuração, que também é recarregável a quente. Na Kinsta, o proxy reverso Nginx é um dos vários complementos premium que você pode usar.

Mas você também pode usar o Nginx Plus, uma oferta comercial, para obter acesso a opções de configuração baseadas em API e outros recursos adequados para sites de grandes empresas.

Kinsta alimenta todos os seus sites com Nginx. Ele foi classificado no status de hospedagem na Web Top Tier da Review Signal em todas as categorias em que competiu. Algumas outras grandes empresas que usam Nginx são MaxCDN, Cloudflare e Netflix.

Configurar o Nginx como um proxy reverso básico é simples. O Nginx também fornece várias diretivas para personalizar o proxy reverso do seu servidor de acordo com seus requisitos. Discutiremos como fazer isso em uma seção posterior. Se você é um cliente Kinsta, você também aprenderá a usar um proxy reverso para sites hospedados com Kinsta na mesma seção.

Verniz

Varnish é um proxy reverso HTTP de código aberto com um mecanismo de cache integrado. Ele foi projetado principalmente para sites de alto tráfego que veiculam conteúdo dinâmico. Você também pode usar o Varnish como um balanceador de carga, um firewall de aplicativo Web (WAF) e um servidor de autenticação e autorização de borda.

Funciona em todas as versões modernas de Linux e FreeBSD, sendo usado principalmente como front para servidores web Nginx ou Apache. O Varnish Configuration Language (VCL) poderoso e altamente flexível do Varnish permite que você defina vários recursos, como manipulação de solicitações HTTP, armazenamento em cache e conexão a um ou mais servidores da web.

Por esse motivo, muitas CDNs usam o Varnish como base principal para entregar conteúdo rapidamente.

O Varnish também suporta Edge Side Includes (ESI), uma linguagem que ajuda você a reutilizar seções de uma página da web em outras páginas da web. Se o seu site usa muito conteúdo repetido em páginas diferentes, o ESI pode ajudá-lo a acelerar o tempo de carregamento da página do seu site armazenando em cache as seções usadas com frequência.

Você pode estender o Varnish com seus vários módulos (VMODs). Vá para o tutorial oficial do Varnish para aprender como configurar o Varnish como um proxy reverso para WordPress.

Servidor de tráfego Apache

Apache Traffic Server é um servidor proxy de cache de código aberto. É popular por seus recursos rápidos e escaláveis. Era um produto comercial desenvolvido pelo Yahoo! há muito tempo, mas eles o tornaram de código aberto e o doaram para a Apache Foundation para manutenção.

Várias grandes redes de conteúdo e CDNs, como Comcast, Akamai, LinkedIn, Yahoo e Apple, usam o Apache Traffic Server para impulsionar sua tecnologia.

Você também pode usar o Apache HTTP Server ( Apache httpd ), um daemon do servidor HTTP, para configurar um proxy reverso em seu servidor web. Além de atuar como um servidor web básico, também ajuda a fornecer conteúdo estático e dinâmico aos usuários. Você aprenderá como configurar o Apache como um proxy reverso posteriormente neste artigo.

HA Proxy

HAProxy é um proxy reverso de código aberto e balanceador de carga. Ele foi projetado para se integrar à maioria das arquiteturas de servidor da Web existentes, incluindo distribuições Linux e plataformas em nuvem. Semelhante ao Nginx, o HAProxy usa um modelo de E/S orientado a eventos e oferece suporte à divisão de solicitações em vários processos de trabalho.

Para solicitações HTTP, o HAProxy funciona excepcionalmente bem mesmo sob cargas pesadas. Alguns dos sites de maior tráfego da Internet, como Airbnb, Reddit, Instagram, Stack Overflow, Tumblr, GitHub e Imgur, usam o HAProxy para entregar seus sites com eficiência.

Discutir como implementar o HAProxy está além do escopo deste artigo, mas você pode consultar a documentação para entender como ele funciona.

Nota: Traefik e Envoy são duas outras alternativas de código aberto ao HAProxy. Ambos são proxies reversos de alto desempenho e balanceadores de carga com muitos recursos avançados.

Alguns outros proxies reversos populares são AWS Elastic Load Balancer, GLBC, DigitalOcean Load Balancer e Google Cloud Load Balancer. Para obter uma lista exaustiva dos principais proxies reversos e balanceadores de carga em uso hoje, você pode conferir Stackshare.io.

Proxy reverso: casos de uso para sites WordPress

Existem principalmente três casos de uso para empregar um proxy reverso para sites WordPress, incluindo sites hospedados na Kinsta.

Carregando um site principal versus um site com proxy
Carregando um 'Site Principal' versus um 'Site Proxied'

Usaremos apenas o Nginx para este exemplo, pois é o proxy reverso mais popular usado para sites WordPress hoje. Mas os mesmos princípios básicos serão aplicados a outros proxies reversos.

Os proxies reversos geralmente são difíceis de instalar, configurar e oferecer suporte. Por esse motivo, Kinsta oferece uma assinatura adicional mensal de $ 50 para cada proxy reverso que você precisar de ajuda para configurar. Você pode entrar em contato com a equipe de suporte da Kinsta para obter mais detalhes.

1. Sites principais e proxy hospedados no mesmo servidor

Se o site principal e o site com proxy estiverem hospedados no mesmo servidor, o site principal pode ser executado em uma instalação do WordPress, enquanto uma instalação separada do WordPress alimenta o site com proxy.

Como você terá acesso aos sites e ao servidor da Web compartilhado, poderá configurar as regras de proxy reverso para o site principal e, em seguida, configurar o site com proxy para carregar do proxy reverso.

Se você estiver hospedando esses dois sites na Kinsta, você pode entrar em contato com a equipe de suporte da Kinsta e solicitar que eles configurem o proxy reverso para você. Aqui está o procedimento que você precisa seguir:

  • Certifique-se de que tanto o site principal quanto o site proxy estejam hospedados na Kinsta. Se não forem, você pode migrar os dois sites para o ambiente Kinsta, manualmente ou enviando uma solicitação de migração.
  • Abra um ticket de suporte e forneça à equipe de suporte da Kinsta uma descrição clara da configuração do domínio. Levarei aproximadamente um dia útil para configurar o proxy reverso.
  • Kinsta irá configurar as regras de proxy reverso relevantes no site principal e configurar o site proxy para carregar sobre o proxy reverso.

Aqui estão as diretivas de proxy reverso Nginx padrão usadas pela Kinsta para carregar um site de subdiretório em um proxy reverso:

 location ^~ /subfolder/ { proxy_pass http://subfolder.domain.com; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; }

No código acima, você precisa substituir o espaço reservado /subfolder/ pelo nome real do subdiretório (por exemplo, /blog/ , /shop/ ). Além disso, o subdomínio http://subfolder.domain.com deve corresponder ao URL usado para apontar o proxy reverso para o site proxy.

A diretiva location inclui símbolos de acento circunflexo e til ( ^~ ) para dizer ao Nginx que, se encontrar a string definida, ele deve parar de procurar por correspondências adicionais e usar as diretivas listadas aqui. Saiba mais sobre as diretivas de proxy reverso do Nginx em sua documentação.
Em seguida, você precisa configurar o site com proxy para carregar pelo proxy reverso. Aqui estão as etapas padrão seguidas pela Kinsta para configurar o site proxy:

  • Crie um subdiretório no caminho de onde o site proxy é carregado. Todos os arquivos do site proxy são movidos para este subdiretório.
  • Atualize os arquivos de configuração do servidor web para definir o novo subdiretório como o diretório raiz do site com proxy. Além disso, você precisa adicionar uma regra de reescrita para remover o subdiretório do URI de solicitação para cada solicitação recebida.
  • Atualize todos os URLs no banco de dados do site com proxy para corresponder aos URLs do site ativo (por exemplo, example.com/blog ).
  • Edite o arquivo wp-config.php do site proxy com a definição $_SERVER['HTTP_HOST'] , apontando-o para a URL do site principal.
  • Se você estiver usando um certificado SSL, precisará definir regras estritas no arquivo wp-config.php para evitar loops de redirecionamento.

Observação: um site com proxy não pode criar URLs que dupliquem o mesmo subdiretório no qual o site com proxy é carregado. Por exemplo, um site proxy em example.com/blog não pode criar uma página ou diretório em example.com/blog/blog .

2. Somente o site proxy hospedado em seu servidor

Se você tiver acesso apenas ao site com proxy e seu servidor da Web, precisará entrar em contato com o administrador do servidor do site principal e pedir que configurem as regras de proxy reverso para você.

Precisa de uma hospedagem extremamente rápida, segura e amigável ao desenvolvedor para seus sites? Kinsta é construído com os desenvolvedores do WordPress em mente e fornece muitas ferramentas e um painel poderoso. Confira nossos planos

Para fazer isso, você deve seguir os mesmos passos descritos acima, exceto que neste caso você deve configurar as regras em dois servidores diferentes.

Para hospedar seu site proxy com Kinsta, adicione um domínio ao site que apontará para o proxy reverso. Normalmente, o subdomínio atende a esse propósito (por exemplo blog.example.com ) para carregar o site proxy em um link de subdiretório (por exemplo, example.com/blog ).

Depois de configurar seu site com proxy na Kinsta, você pode entrar em contato com a equipe de suporte da Kinsta para configurar o site com proxy para carregar em um proxy reverso. Neste momento, nossa equipe de suporte solicitará o IP real do seu servidor para concluir o processo de configuração de uma maneira que conte as visitas corretamente. Se você não conseguir fornecer um IP estático devido a restrições de IP dinâmico de determinados provedores (por exemplo, AWS CloudFront), seu plano será convertido em um plano baseado em largura de banda comparável.

Por fim, configurar o proxy reverso em seu servidor está fora do escopo do suporte Kinsta, pois apenas o administrador do servidor pode cuidar disso.

3. Apenas o site principal hospedado em seu servidor

Se você tiver acesso apenas ao site principal e seu servidor da Web, deverá configurar o proxy reverso e configurar suas regras para carregar o site proxy de um host externo. Instalar e configurar o site com proxy para carregar no proxy reverso é responsabilidade do administrador do servidor secundário.

Ter seu site principal hospedado na Kinsta lhe dará acesso à equipe de suporte da Kinsta. Você pode gerar um tíquete de suporte com eles para adicionar as regras de proxy reverso padrão listadas anteriormente neste artigo. Você também pode adicionar personalizações adicionais a essas regras, se necessário.

Nesse cenário, você é totalmente responsável por configurar o site com proxy para carregá-lo corretamente pelo proxy reverso.

Como configurar o Nginx como um proxy reverso

Se Kinsta não hospedar seu site e você gerenciar seus servidores, você mesmo deverá configurar o proxy reverso e configurá-lo para apontar para o site proxy.

Dependendo do sistema operacional do seu servidor web, você pode instalar o Nginx de forma diferente. Para distribuições Linux, você pode usar vários pacotes Nginx com base na versão da sua distribuição Linux.

No exemplo abaixo, instalamos o site principal no nome de domínio example.com , enquanto o site WordPress proxy está instalado no subdomínio blog.domain.com . Ambos são desenvolvidos pelo Apache em um servidor web rodando no Ubuntu 18.04. Vamos instalar e configurar o Nginx como proxy reverso no servidor principal.

Para começar, acesse o terminal do seu servidor via SSH. Em seguida, use o comando apt-get para atualizar a lista de pacotes da sua distribuição e instale o Nginx em seu servidor web.

 sudo apt update sudo apt install nginx

Em seguida, você precisa configurar o Nginx para solicitações de proxy para domínios hospedados no Apache. Para fazer isso, crie um novo arquivo de host virtual. Aqui, estou usando o editor nano para adicionar o código, mas você pode usar qualquer editor de código de sua escolha.

 sudo nano /etc/nginx/sites-available/example.com.conf

Em seguida, defina as diretivas Nginx para encaminhar solicitações para o Apache adicionando o seguinte server {...} e blocos de location :

 server { listen 80; server_name example.com www.example.com; index index.php; root /var/www/example.com/public # fallback for index.php location / { try_files $uri $uri/ /index.php?$query_string; }location /blog { proxy_pass http://blog.domain.com;proxy_http_version 1.1; proxy_cache_bypass $http_upgrade; # Proxy headers proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-Port $server_port; # Proxy timeouts proxy_connect_timeout 60s; proxy_send_timeout 60s; proxy_read_timeout 60s; }

No código acima, estou definindo um link de subdiretório example.com/blog que será servido pelo servidor Apache. Certifique-se de usar o endereço IP público (ou URL) do seu site com proxy na diretiva proxy_pass . No meu caso, meu site proxy está hospedado no subdomínio blog.domain.com .

Nota: Certifique-se de que o site com proxy esteja instalado e pronto para ser servido antes de fazer qualquer alteração.

Você pode aprender mais sobre todas as diretivas de proxy reverso usadas aqui no índice detalhado de diretivas do Nginx.

Salve o arquivo de host virtual. Em seguida, ative o novo host virtual criando um link simbólico para os arquivos denominados example.com.conf nos diretórios /etc/nginx/sites-available e /etc/nginx/sites-enabled .

 sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

Depois disso, teste o Nginx para quaisquer erros de configuração.

 sudo nginx -t

Se não houver erros, recarregue o Nginx para impor as alterações.

 sudo systemctl reload nginx

Você configurou com sucesso o Nginx para funcionar como um proxy reverso agora. Para confirmar isso, você pode usar a função phpinfo() para verificar as variáveis ​​PHP carregadas quando você visita seu site proxy.

Nas variáveis ​​PHP SERVER_SOFTWARE e DOCUMENT_ROOT , você verá que o Apache atende a esse domínio no backend. Mas HTTP_X_REAL_IP e HTTP_X_FORWARDED_FOR PHP confirmam que o Nginx foi usado como um proxy reverso para encaminhar as requisições.

Você pode acelerar o serviço do seu site WordPress no Nginx usando os módulos fastcgi_cache e ngx_cache_purge. Enquanto o primeiro módulo armazenará seu site em cache, o segundo módulo limpará automaticamente o cache com base em eventos específicos (por exemplo, publicação ou edição de um post/página do WordPress).

Você pode usar o plugin WordPress Nginx Cache Controller para controlar o cache do servidor proxy do Nginx diretamente do seu painel de administração do WordPress. Se você estiver usando uma instalação do WordPress Multisite, poderá usar o plug-in Nginx Helper para fazer o mesmo.

Confira a documentação principal do Nginx e o guia de configuração do Nginx WordPress para obter uma visão detalhada de como trabalhar com o Nginx e o WordPress.

Como configurar o Apache como um proxy reverso

Antes de começar, verifique se você tem dois sites funcionando em example.com e blog.domain.com . O primeiro site pode ou não ser um site WordPress, mas o segundo deve ser um site WordPress, pois é usado principalmente para carregar o blog do domínio raiz no link do subdiretório example.com/blog .

Comece a configurar o Apache abrindo o terminal do seu servidor via SSH e habilitando o módulo proxy do Apache.

 sudo a2enmod proxy proxy_http ssl

A execução do comando acima provavelmente reiniciará o Apache para recarregar as diretivas recém-definidas.

Em seguida, edite o arquivo de hosts virtuais do seu servidor principal para criar um proxy reverso. Aqui está o código que você precisa adicionar:

 <VirtualHost *> DocumentRoot /var/www/app/public SSLProxyEngine On ProxyRequests off ProxyPass /blog http://blog.domain.com ProxyPassReverse /blog http://blog.domain.com </VirtualHost>

A diretiva ProxyPass criará um proxy reverso para os caminhos especificados, enquanto a diretiva ProxyPassReverse interceptará os cabeçalhos de resposta HTTP enviados por meio desse proxy reverso e os reescreverá para corresponder ao servidor Apache.

Depois de salvar o arquivo, você precisa editar seu arquivo wp-config.php adicionando o seguinte código logo antes da linha que pede para você parar de editar.

 # ProxyPass Settings # overrides the variables below to ensure that any # request to /blog/* subdirectory is taken care of properly $_SERVER['REQUEST_URI'] = '/blog' . $_SERVER['REQUEST_URI']; $_SERVER['SCRIPT_NAME'] = '/blog' . $_SERVER['SCRIPT_NAME']; $_SERVER['PHP_SELF'] = '/blog' . $_SERVER['PHP_SELF'];

Por fim, você precisa atualizar o banco de dados do seu site WordPress para adicionar os valores de configuração do link do subdiretório /blog . Você pode fazer isso executando a seguinte consulta SQL:

 UPDATE wp_options SET option_value = 'https://www.example.com/blog' WHERE option_name IN( 'siteurl', 'home' );

Agora você deve poder visitar https://www.example.com/blog URL e ter seu site WordPress hospedado no subdomínio http://blog.domain.com carregar sem alterar sua URL. Você pode continuar usando o WordPress normalmente para navegar, escrever, editar e gerenciar seu site.

Limitações de um proxy reverso

  • Um proxy reverso representa um risco de segurança significativo, pois pode ler e alterar todo o tráfego que passa por ele. Se você estiver passando tráfego HTTPS por meio do proxy reverso, ele precisará descriptografar e criptografar novamente os dados de passagem. Isso significa que ele deve possuir as chaves privadas do certificado SSL/TLS. Assim, se qualquer parte mal-intencionada puder comprometer seu proxy reverso, ela poderá registrar senhas e injetar malware em seus sites.
  • Se você ou seus usuários não puderem acessar seu servidor principal diretamente, o uso de um proxy reverso pode levar a um único ponto de falha. Por exemplo, se você estiver usando um proxy reverso como fachada para atender a vários domínios, sua interrupção pode levar todos os domínios a ficarem offline simultaneamente.
  • Se você estiver confiando em um proxy reverso de terceiros (por exemplo, Cloudflare), estará entregando as informações confidenciais do seu site a eles. Enquanto eles são confiáveis, você não pode prever o que isso pode levar.
  • Restaurar backups ou enviar sites de teste ao vivo em sites que carregam em um proxy reverso pode fazer com que o site com proxy pare de carregar corretamente.

Escolhendo entre um CDN e um proxy reverso

CDNs são uma forma avançada de proxy reverso com a maior parte da configuração e manutenção feita por terceiros. Eles podem fornecer incríveis benefícios de desempenho ao seu site WordPress com um pequeno esforço do seu lado.

As CDNs não apenas armazenam o conteúdo em cache e o veiculam rapidamente aos usuários, mas também reduzem a carga em seus servidores de origem, reduzem os custos de largura de banda, fornecem uma camada adicional de segurança, aumentam o SEO do seu site e ajudam a dimensionar melhor seu site.

Você notará que a maioria dos benefícios fornecidos pelos CDNs são os mesmos fornecidos pelos proxies reversos. Então, você deve escolher um CDN em vez de um proxy reverso ou vice-versa?

Não há razão para você se contentar com apenas um. Se você já tiver um proxy reverso instalado, ainda verá ganhos de velocidade e desempenho ao usar um CDN. Ambos os caches se sobrepõem bem e, se você tiver alguma necessidade exclusiva de manipulação de solicitações (por exemplo, conteúdo dinâmico, comércio eletrônico), poderá configurá-lo facilmente com alguns cabeçalhos personalizados transmitidos pelo CDN ou pelo proxy reverso.

Quer saber mais sobre servidores proxy reversos? Este artigo aborda... como eles funcionam, principais benefícios, como você pode usá-los para acelerar e proteger seu site WordPress. Clique para Tweetar

Resumo

O WordPress é altamente flexível. Você pode usá-lo como um blog, um site de comércio eletrônico ou até mesmo um Sistema de Gerenciamento de Aprendizagem. Na maioria dos casos, você pode personalizar o WordPress para atender aos seus requisitos exclusivos.

No entanto, às vezes pode ser necessário usar um domínio separado ou um servidor secundário para hospedar um site adicional. Conforme discutido anteriormente, pode ser devido ao uso de diferentes pilhas de tecnologia para um grande site corporativo ou ao lançamento de um blog WordPress para um site não WordPress pré-existente.

Um proxy reverso pode ajudar em ambos os casos, ajudando você a tirar o máximo proveito do WordPress sem abrir mão do site principal e começar de novo.