Configurando o Apache para deixar dois servidores web no mesmo link

Iremos configurar o Apache para fazer um proxy balancer para poder haver dois servidores web utilizando o mesmo link de internet.

[ Hits: 9.229 ]

Por: Álvaro Fernandes em 21/11/2018


Configurando o Apache2 do primeiro servidor



Vamos começar instalando o apache2 e algumas libs:

sudo apt-get install apache2 php7.2 libapache2-mod-php7.2
$ sudo apt-get install libapache2-mod-auth-mysql php7.2-mysql
$ sudo apt-get install apache2-prefork-dev


Habilitando os módulos do apache para o redirecionamento e para o proxy pass:

sudo a2enmod env proxy_ajp proxy_balancer proxy proxy_connect proxy_http rewrite ssl headers

Para desabilitar os mods basta usar:

sudo a2dismod [nome-dos-módulos]

Agora iremos criar o arquivo na pasta do apache2:

sudo nano /etc/apache2/sites-available/meuSite

NOTA: no caso se for o Ubuntu 16.04 ou 18.04 precisa colocar o ".conf" no final, ex.: meuSite.conf.

Para habilitar um site utilize o comando:

sudo a2ensite meuSite

e para desabilitar:

sudo a2dissite meuSite

e para reiniciar o apache:

sudo service apache2 reload

e em caso de travamento ou para reiniciá-lo utilizar:

sudo service apache2 restart

Dentro do arquivo meuSite vamos colocar os seguintes itens:

<VirtualHost *:80>
        ServerName www.meuDominio.com
        RewriteEngine On
        RedirectMatch .* https://meuDominio.com/$1
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
        ServerName meuDominio.com
        RewriteEngine On
        RewriteCond %{HTTPS} off
        RewriteRule (.*) https://%{SERVER_NAME}/$1 [R,L]
</VirtualHost>

São duas formas diferentes de redirecionamento, e cada uma das duas está redirecionando do http para o https.

Agora vamos fazer o proxy pass, essas linhas farão parte do mesmo arquivo, indo abaixo do </VirtualHost> do segundo redirecionamento:

<VirtualHost *:443>
        ServerName meuDominio.com
        ServerAlias meuDominio.com
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
        SSLEngine On
        SSLProxyEngine    On
        SSLProxyVerify none
        SSLProxyCheckPeerCN off
SSLProxyCheckPeerExpire off
        #SSLProxyCheckPeerName off
ProxyPreserveHost On
        ProxyPass / http://192.168.2.15:8000/
        ProxyPassReverse / http://192.168.2.15:8000/
        ProxyVia On
        ProxyPreserveHost On
        RequestHeader set X-Forwarded-Proto 'https' env=HTTPS
        SSLCertificateFile    /etc/ssl/certs/ssl-cert-snakeoil.pem
        SSLCertificateKeyFile /etc/ssl/private/ssl-cert-snakeoil.key
</VirtualHost>

O ip do ProxyPass é o ip do segundo servidor.

Essas duas linhas de SSLCertificate estão aí porque fiz um certificado com o openssl e então deixei elas aí pois o cert-bot irá sobrescrevê-las depois.

Nesse caso estamos utilizando a porta 8000 interna para mandar para o segundo servidor.

Se houver uma mensagem como:

apache2: Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName.
É só colocar ServerName localhost no final do apache2.conf:

sudo nano /etc/apache2/apache2.conf

Apertar pagedown até a última linha e adicionar:

ServerName localhost

E reiniciar o Apache:

sudo service apache2 restart

    Próxima página

Páginas do artigo
   1. Configurando o Apache2 do primeiro servidor
   2. Configurando o Apache2 do segundo servidor
   3. Instalando um certificado SSL e automatizando a renovação
Outros artigos deste autor

Autenticando Squid utilizando MySQL

Leitura recomendada

Trabalhando com shell e variáveis de ambiente

Criando uma imagem de instalação do Ubuntu

Lubuntu, um Ubuntu mais Leve!

Configurando o modem ZTE MF626 com Vivo3G no Debian

Instalação e configuração do RT (Resquest Tracker)

  
Comentários

Nenhum comentário foi encontrado.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts