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: 8.720 ]

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

Instalando o AWSTATS no Slackware

WordPress com Docker

Otimizando seu web server com Apache2 + Lighttpd

O que fazer após instalação do elementary OS Luna

Servidor de ICQ free no SuSE

  
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