Como configurar hosts virtuais no Nginx no Ubuntu ⋆ ALexHost SRL

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills
11.02.2025

Como configurar hosts virtuais no Nginx no Ubuntu

A configuração de anfitriões virtuais no Nginx permite-lhe alojar vários sítios Web num único servidor, tendo cada sítio Web o seu próprio nome de domínio. Os hosts virtuais do Nginx são configurados usando “blocos de servidor” que definem as configurações para cada site. Este guia irá orientá-lo na configuração de hosts virtuais num servidor Ubuntu com Nginx.

1. Pré-requisitos

  • Nginx instalado: Certifique-se de que o Nginx esteja instalado no seu servidor. Se não estiver, instale-o com:
    sudo apt update
    sudo apt install nginx
  • Nomes de domínio: Tenha os nomes de domínio que deseja hospedar apontados para o endereço IP do seu servidor. Pode modificar o seu ficheiro /etc/hosts para efeitos de teste.

2. Configurar diretórios para cada site

Cada site deve ter o seu próprio diretório para armazenar os ficheiros do site. Vamos criar diretórios para dois sites de exemplo, exemplo1.com e exemplo2.com.

sudo mkdir -p /var/www/example1.com/html
sudo mkdir -p /var/www/example2.com/html

Conceda a propriedade destes diretórios ao utilizador Nginx (www-data) para garantir que o Nginx tem as permissões necessárias.

sudo chown -R www-data:www-data /var/www/example1.com/html
sudo chown -R www-data:www-data /var/www/example2.com/html

Defina as permissões apropriadas:

sudo chmod -R 755 /var/www

3. Criar conteúdo de amostra

Para testar os anfitriões virtuais, adicione ficheiros HTML de amostra para cada site.

Exemplo1.com:

echo "<h1>Welcome to Example1.com!</h1>" | sudo tee /var/www/example1.com/html/index.html

Example2.com:

echo "<h1>Welcome to Example2.com!</h1>" | sudo tee /var/www/example2.com/html/index.html

4. Criar ficheiros de configuração do anfitrião virtual

Agora, vamos criar um arquivo de configuração de bloco de servidor (host virtual) para cada site. O Nginx armazena esses arquivos de configuração no diretório /etc/nginx/sites-available/.

Etapa 1: Criar configuração para Example1.com

Crie um novo arquivo de configuração para example1.com:

sudo nano /etc/nginx/sites-available/example1.com

Adicione a seguinte configuração:

server {
listen 80;
server_name example1.com www.example1.com;
root /var/www/example1.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

Etapa 2: criar configuração para Example2.com

Crie um ficheiro de configuração para example2.com:

sudo nano /etc/nginx/sites-available/example2.com

Adicione a seguinte configuração:

server {
listen 80;
server_name example2.com www.example2.com;
root /var/www/example2.com/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}

5. Ativar os Hosts Virtuais

O Nginx usa links simbólicos para habilitar hosts virtuais. Vincule os arquivos de configuração de sites-available para sites-enabled:

sudo ln -s /etc/nginx/sites-available/example1.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/example2.com /etc/nginx/sites-enabled/

6. Testar a configuração

Para garantir que não existem erros de sintaxe na sua configuração, execute:

sudo nginx -t

Se tudo estiver correto, você verá uma mensagem de confirmação. Se existirem erros, o Nginx apresentará detalhes para o ajudar a resolver o problema.

7. Reiniciar o Nginx

Depois de confirmar a configuração, reinicie o Nginx para aplicar as alterações:

sudo systemctl restart nginx

8. Aceder aos sítios Web

Se os nomes de domínio estiverem apontados para o seu servidor, deve agora poder aceder a cada site visitando:

  • http://example1.com
  • http://example2.com

Para testes locais, pode editar o seu ficheiro /etc/hosts para mapear os nomes de domínio para o endereço IP do seu servidor. Adicione entradas como:

127.0.0.1 example1.com 127.0.0.1 example2.com

Guarde e feche o ficheiro e, em seguida, tente aceder aos sites no seu browser.

9. Ativação de HTTPS para cada site (opcional)

Para conexões seguras, é possível configurar certificados SSL usando o Let’s Encrypt. Para ativar o HTTPS:

Instale o certbot:

sudo apt install certbot python3-certbot-nginx

Execute o seguinte comando para obter e configurar certificados SSL para cada domínio:

sudo certbot --nginx -d example1.com -d www.example1.com
sudo certbot --nginx -d example2.com -d www.example2.com

Siga as instruções e o Certbot definirá automaticamente o HTTPS na sua configuração do Nginx.

Conclusão

Ao configurar hosts virtuais no Nginx no Ubuntu, você pode hospedar vários sites em um único servidor, cada um com sua própria configuração e conteúdo. Essa configuração é eficiente e escalável, tornando o Nginx uma excelente escolha para hospedar vários sites no mesmo servidor.

Teste suas habilidades em todos os nossos serviços de hospedagem e ganhe 15% de desconto!

Utilizar o código no ato da compra:

Skills