Apontar sub-domínio para outro IP na rede interna
Ubuntu 18.04-20.10Em algumas situações precisamos que cada um dos subdomínios aponte para um computador diferente na rede, estando um deles como servidor principal.
├── server.domain1.com (192.168.1.80) (master server) │ └── public_html ├── sub1.domain1.com (192.168.1.81) (raspberry1) │ └── public_html ├── sub2.domain1.com (192.168.1.82) (raspberry2) │ └── public_html
Criar Vhost no servidor principal
sudo mkdir -p /var/www/server.domain1.com/public_html
sudo chown $user:www-data /var/www/server.domain1.com/public_html
<!DOCTYPE html>
<html lang="en" dir="ltr">
<head>
<meta charset="utf-8">
<title>Welcome to server.domain1.com</title>
</head>
<body>
<h1>Success! server.domain1.com home page!</h1>
</body>
</html>
Os comandos são executados como root, assim, os atributos dos novos ficheiros criados são root. Para evitar problemas com as permissões, alterar o apache-user para (www-data)
sudo chown -R www-data: /var/www/server.domain1.com
Criar Virtual Hosts
No UBUNTU, o Virtual Host é criado em
/etc/apache2/sites-available são ativados manualmente criando um symlink para
/etc/apache2/sites-enabled
<VirtualHost *:80>
ServerName server.domain1.com
ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.
DocumentRoot /var/www/server.domain1.com/public_html
<Directory /var/www/server.domain1.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog ${APACHE_LOG_DIR}/server.domain1.com-error.log
CustomLog ${APACHE_LOG_DIR}/server.domain1.com-access.log combined
</VirtualHost>
Depois de criado o vhost, temos de ativar criando um symlink para sites enable ou executando comando
sudo a2ensite server.domain1.com
Criar sub para outro ips
Para criar subs para outro ips vamos usar o proxypass e criar um Vhost no server.domain1.com
Instalar no servidor
sudo a2enmod proxy proxy_http proxy_balancer lbmethod_byrequests
Configurar o vhost para o sub domínio
<VirtualHost *:80>
ServerName sub1.domain1.com
ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.
ProxyPreserveHost On
ProxyRequests Off
ProxyPass / http://192.168.1.81/
ProxyPassReverse / http://192.168.1.81/
ErrorLog ${APACHE_LOG_DIR}/sub1.domain1.com-error.log
CustomLog ${APACHE_LOG_DIR}/sub1.domain1.com-access.log combined
</VirtualHost>
e, depois de criado, vamos ativar com
sudo a2ensite sub1.domain1.com
SSL Certificate
Mesmo que tenhamos criado um ssl para o domínio principal noutro servidor e os respetivos certificados para os subdominios, temos sempre de criar os nosso certificados, para isso usamos o certbot que nos gera um certificado gratuito "Let'sEncrypt". Instalar certbot. Na pasta /etc/apache2/sites-available é criado automaticamente um ficheiro de configuração para o domínio com ssl e com a porta 443.