# Como configurar um proxy reverso do Apache

Ao incorporar um proxy reverso como uma **camada extra de segurança**, você pode reforçar a resiliência do seu aplicativo da Web e reduzir as chances de possíveis ataques. O Apache HTTP Server oferece uma grande variedade de módulos e extensões projetados especificamente para dar suporte a várias funções de proxy. Em nosso guia abrangente, vamos orientá-lo no processo passo a passo de instalação e configuração de um proxy reverso do Apache.

## O que é mod\_proxy?

o [Apache](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/o-que-e-o-apache/) é um servidor da Web de código aberto bem conhecido e amplamente utilizado \*\*\*\* que é usado para fornecer conteúdo da Web na Internet. Ele está disponível em vários sistemas operacionais, como Windows, Linux e macOS, e pode ser ampliado de forma flexível por meio de plug-ins e módulos.

O módulo mod\_proxy permite que o servidor da Web Apache atue como um proxy reverso, encaminhando solicitações a outro servidor e retornando a resposta ao cliente. Isso se mostra valioso em cenários em que há vários servidores da Web presentes e a necessidade de distribuir a carga de trabalho entre eles. Ele aprimora o desempenho e constrói uma arquitetura de alta disponibilidade para sua infraestrutura da Web.

O mod\_proxy do Apache consiste em vários módulos, cada um com sua própria funcionalidade. Aqui estão alguns dos **módulos mais importantes**:

- **mod\_proxy**: Fornece a funcionalidade principal do proxy reverso e encaminha solicitações para outro servidor.
- **mod\_proxy\_http**: Fornece funcionalidade de proxy para os protocolos HTTP e HTTPS.
- **mod\_proxy\_ftp**: Fornece funções de proxy para o protocolo FTP.
- **mod\_proxy\_connect**: Para conexões criptografadas por SSL.
- **mod\_proxy\_ajp**: Usado para encaminhar solicitações a servidores de aplicativos habilitados para AJP.
- **mod\_proxy\_wstunnel**: Para o uso de soquetes da Web
- **mod\_proxy\_balancer**: Fornece recursos de balanceamento de carga.
- **mod\_cache**: oferece suporte a vários métodos de cache.
- **mod\_headers**: Para modificação das linhas de cabeçalho HTTP.
- **mod\_deflate**: Comprime as respostas HTTP.

---

### Dica

[A hospedagem Linux](https://www.ionos.com/hosting/linux-hosting "Linux Hosting from IONOS") da IONOS oferece suporte a uma ampla variedade de módulos Apache que permitem configurar seu próprio proxy reverso Apache de forma rápida e eficaz. Beneficie-se do desempenho flexivelmente escalável, da proteção DDOS e dos principais recursos PHP.

---

## Configure um proxy reverso do Apache passo a passo

Este tutorial pressupõe que você tenha o Apache instalado em seu sistema. Para obter informações detalhadas sobre como configurar um [servidor da Web Apache](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/como-instalar-servidor-web-apache/), consulte nosso guia.

### Etapa 1: Atualizar o índice do pacote

Em primeiro lugar, você deve atualizar a **lista de pacotes disponíveis**. Digite o seguinte comando no terminal:

```shell
$ sudo aptitude update
```

Agora, atualize os pacotes instalados em seu sistema:

```shell
$ sudo aptitude upgrade -y
```

### Etapa 2: Faça o download das ferramentas essenciais de compilação

Em seguida, vamos instalar as **Essential Build Tools**. Esse grupo de ferramentas e bibliotecas é necessário para criar e compilar aplicativos no Linux.

```shell
$ sudo aptitude install -y build-essential
```

### Etapa 3: Instalar módulos e dependências

Agora vamos baixar e instalar os **módulos e bibliotecas** necessários para o proxy reverso do Apache.

```shell
$ sudo aptitude install -y libapache2-mod-proxy-html libxml2-dev
```

### Etapa 4: habilitar módulos

Antes de ativar as extensões, é fundamental verificar sua instalação correta. Você pode usar o seguinte comando para exibir uma lista dos módulos disponíveis:

```shell
$ a2enmod
```

[![Imagem: Run a2enmod](https://www.ionos.com/pt-br/digitalguide/fileadmin/_processed_/f/a/csm_a2enmod_20593ea8ba.webp "Run a2enmod")](https://www.ionos.com/pt-br/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/a2enmod.png) a2enmod command in terminal Ao executar o comando a2enmod, você será solicitado a selecionar os módulos que deseja ativar. Para simplificar o processo e especificar vários módulos em um único comando:

```shell
$ proxy proxy_ajp proxy_http rewrite deflate headers proxy_balancer proxy_connect proxy_html
```

Você também pode ativar cada módulo individualmente:

```shell
$ a2enmod proxy
$ a2enmod proxy_http
$ a2enmod proxy_ajp
$ a2enmod rewrite
$ a2enmod deflate
$ a2enmod headers
$ a2enmod proxy_balancer
$ a2enmod proxy_connect
$ a2enmod proxy_html
```

Alguns módulos estão ativos por padrão. Use `a2enmod` para garantir que eles estejam realmente ativados.

### Etapa 5: Alterar a configuração padrão

Para implementar as funções de proxy do servidor Web Apache, precisamos editar o arquivo de configuração padrão *000-default.conf* no diretório */etc/apache2/sites-enabled* .

```shell
$ nano /etc/apache2/sites-enabled/000-default.conf
```

Configuramos um host proxy virtual usando as extensões **mod\_virtualhost e mod\_proxy** . Você pode personalizar o código de acordo com suas necessidades.

```shell
<VirtualHost *:*>
        ProxyPreserveHost On
        # Servers to proxy the connection, or;
        # List of application servers:
        # Usage:
        # ProxyPass / http://[IP Addr.]:[port]/
        # ProxyPassReverse / http://[IP Addr.]:[port]/
        # Example:
        ProxyPass / http://0.0.0.0/
        ProxyPassReverse / http://0.0.0.0/
        ServerName localhost
    </VirtualHost>
```

Pressione `Ctrl` + `X` e `Y` para salvar as alterações e fechar o editor de texto.

### Etapa 6: configurar o balanceamento de carga

Se você executar vários servidores de backend, é recomendável distribuir a carga usando o **balanceamento de carga**.

Você pode usar o código a seguir como modelo para isso e inseri-lo no arquivo de configuração padrão:

```shell
<Proxy balancer://mycluster>
        # Define back-end servers:
        # Server 1
        BalancerMember http://0.0.0.0/
        # Server 2
        BalancerMember http://0.0.0.0/
    </Proxy>
    <VirtualHost *:*>
        # Apply VH settings as desired
        # However, configure ProxyPass argument to
        # use "mycluster" to balance the load
        ProxyPass / balancer://mycluster
    </VirtualHost>
```

### Etapa 7: configurar o suporte a SSL

Para usar o Apache SSL para **conexões e certificados criptografados**, você deve ativar um segundo host virtual.

```shell
Listen 443
    NameVirtualHost *:443
    <VirtualHost *:443>
        SSLEngine On
        # Set the path to SSL certificate
        # Usage: SSLCertificateFile /path/to/cert.pem
        SSLCertificateFile /etc/apache2/ssl/file.pem
        # Servers to proxy the connection, or;
        # List of application servers:
        # Usage:
        # ProxyPass / http://[IP Addr.]:[port]/
        # ProxyPassReverse / http://[IP Addr.]:[port]/
        # Example:
        ProxyPass / http://0.0.0.0/
        ProxyPassReverse / http://0.0.0.0/
        # Or, balance the load:
        # ProxyPass / balancer://balancer_cluster_name
    </VirtualHost>
```

### Etapa 8: reiniciar o Apache

Quando terminar a configuração, reinicie o servidor da Web Apache para que as alterações sejam aplicadas.

```shell
$ service apache2 restart
```

Agora, o proxy reverso do Apache deve encaminhar solicitações para seus servidores back-end.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/configurar-o-proxy-reverso-do-apache/](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/configurar-o-proxy-reverso-do-apache/) for AI/LLM consumption.