VHOST: Configurando vários sites no mesmo servidor

VHOST: Configurando vários sites no mesmo servidor

Configurando vários sites no mesmo servidor

À prática de servir vários sites a partir de um único servidor web, damos o nome de Virtual Host ou Virtual Server. O processo pode ser feito a partir de IP\’s diferentes (IP\’s diferentes, servindo sites diferentes em um mesmo servidor) ou por nomes de domínios (um único IP com vários domínios em um único servidor). No nosso caso, usarei o servidor web Nginx e usarei a técnica por nomes de domínios.

Objetivo:

  1. Configurar dois sites no mesmo servidor:
    1. fontes.aptans.com: Site WordPress
    2. jeduc.com.br: Site moodle

Requisitos:

  1. Ter um domínio com o DNS apontando para o seu servidor;
  2. Ter os softwares instalados no servidor:
    1. Nginx
    2. Php-fpm

Execução

1º Passo: Preparando o ambiente

1º. Crie os diretórios para os sites

sudo mkdir -p /var/www/fontes.aptans.com/html
sudo mkdir -p /var/www/jeduc.com.br/html

2º. Coloque os arquivos do site dentro das pastas HTML e altere as permissões dos diretórios.

sudo chown -R www-data:www-data /var/www/fontes.aptans.com/html
sudo chown -R www-data:www-data /var/www/jeduc.com.br/html

Caso você não possua os arquivos do site, crie um arquivo index.html dentro do diretório HTML e insira esse código para fins de teste

<html>
  <head>
    <title>www.example.com</title>
  </head>
  <body>
    <h1>Success: You Have Set Up a Virtual Host</h1>
  </body>
</html>

Ao final desses passos a estrutura será essa:

vhost

2º Passo: Criando vhost no Nginx

Agora que o ambiente já está pronto, podemos fazedr as configurações no servidor web.

1º Copie o arquivo de configuração padrão

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/fontes.aptans.com

2º Abra o arquivo de configuração que foi criado

sudo nano /etc/nginx/sites-available/fontes.aptans.com

3º Altere o conteúdo do arquivo para algo como o apresentado abaixo

  • Observações importantes:
    • Meu site é em PHP e meu servidor usa a versão 7.4 do php-fpm. Se for outra versão basta alterar a versão do php-fpm na linha 14;
    • Altere a opção "server_name" com o seu domínio e a opção root com a estrutura que você criou acima.
server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /var/www/fontes.aptans.com/html;
        # Adicione index.php na lista se seu site usa PHP
        index index.php index.html index.htm index.nginx-debian.html;
        server_name fontes.aptans.com;
        location / {
                try_files $uri $uri/ =404;
        }
        location ~ \.php$ {
               include snippets/fastcgi-php.conf;
               # Se sua versão não é o php7.4-fpm, troque a versão abaixo:
               fastcgi_pass unix:/run/php/php7.4-fpm.sock;
        }
}

4º Remova o arquivo default

sudo rm /etc/nginx/sites-enabled/default
sudo rm /etc/nginx/sites-available/default

5º Crie a configuração para outro domínio e edite os mesmo campos que editou acima

sudo cp /etc/nginx/sites-available/fontes.aptans.com /etc/nginx/sites-available/jeduc.com.br

3º Passo: Para finalizar

1º Faça um link dos arquivos de configuração

sudo ln -s /etc/nginx/sites-available/fontes.aptans.com /etc/nginx/sites-available/

2º Reinicie o Nginx

systemctl restart nginx.service

4º Passo: Vendo seu Virtual Host em ação

Uma vez que você terminou suas configurações, você poderá ver seu virtual host online. Digite seu domínio ou IP no seu navegador e pronto!