Este artigo está em ubuntu (20), o texto original em inglês é implementado em ubuntu16. É configurar 2 hosts virtuais para acessar diferentes diretórios pessoais da WEB com diferentes nomes de domínio.
Os dois nomes de domínio são example.com e test.com. Você não precisa ter esses dois nomes de domínio, eles são apenas para teste.
Texto original de referência: https://www.digitalocean.com/community/tutorials/how-to-set-up-nginx-server-blocks-virtual-hosts-on-ubuntu-16-04
Pré-requisitos
O conteúdo deste artigo não inclui a instalação do nginx, você pode consultar: Instalação do Nginx no Ubuntu, teste
Na verdade, a instalação é:
sudo apt update
sudo apt install nginx
Este artigo requer que você tenha um usuário não root, mas pertença ao grupo sudo. Caso contrário, faça o seguinte com o usuário root:
adduser sammy
usermod -aG sudo sammy
Crie um novo diretório raiz da Web
Por padrão, o diretório raiz da Web do Ubuntu é / var / www / html, que é a situação após a instalação do nginx.
Agora crie os diretórios raiz da Web de dois nomes de domínio, a saber, example.com e test.com.
-p significa criar o diretório pai necessário.
sudo mkdir -p /var/www/example.com/html
sudo mkdir -p /var/www/test.com/html
Altere o proprietário e o grupo do diretório
sudo chown -R $USER:$USER /var/www/example.com/html
sudo chown -R $USER:$USER /var/www/test.com/html
Altere as permissões do diretório:
sudo chmod -R 755 /var/www
Crie 2 páginas de amostra
Crie index.html para o primeiro nome de domínio
nano /var/www/example.com/html/index.html
O conteúdo é o seguinte:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>
O conteúdo é muito simples de exibir. O bloco do servidor example.com está funcionando.
Crie index.html para o segundo nome de domínio
nano /var/www/test.com/html/index.html
O conteúdo é o seguinte:
<html>
<head>
<title>Welcome to Test.com!</title>
</head>
<body>
<h1>Success! The test.com server block is working!</h1>
</body>
</html>
Nosso objetivo é visitar diferentes domínios e exibir diferentes páginas da web.
Configuração de bloco de servidor
Configure o primeiro bloco de servidor de nome de domínio:
sudo nano /etc/nginx/sites-available/example.com
O conteúdo é:
server {
listen 80;
listen [::]:80;
root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
Configure o segundo bloco de servidor de nome de domínio:
sudo nano /etc/nginx/sites-available/test.com
O conteúdo é:
server {
listen 80;
listen [::]:80;
root /var/www/test.com/html;
index index.html index.htm index.nginx-debian.html;
server_name test.com www.test.com;
location / {
try_files $uri $uri/ =404;
}
}
Habilite a configuração e reinicie o nginx
O arquivo de configuração em / etc / nginx / sites-available / não participará da configuração e deve estar vinculado ao diretório / etc / nginx / sites-enable /
A operação de ativação é a seguinte:
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/
Para evitar problemas de memória no balde de hash que podem ser causados pela adição de outros nomes de servidor, ajustamos um único valor no arquivo /etc/nginx/nginx.conf. abrir um arquivo:
sudo nano /etc/nginx/nginx.conf
Encontre o item server_names_hash_bucket_size no arquivo e cancele o comentário anterior.
http {
. . .
server_names_hash_bucket_size 64;
. . .
}
Salve e feche o arquivo.
Em seguida, teste se toda a configuração está sintaticamente correta.
sudo nginx -t
Na verdade, ele também pode:
sudo nginx -T
T maiúsculo verifica a sintaxe e exibe o conteúdo da configuração. Exibe o conteúdo do arquivo de configuração principal, o conteúdo dos 2 blocos de configuração do servidor e o conteúdo da inclusão no arquivo de configuração.
Para erros de configuração, você pode olhar o conteúdo do diretório / etc / nginx / sites-enbale /, excluí-lo se não for necessário, talvez seja o erro causado por ele.
Se a verificação estiver correta e nenhum erro for relatado, reiniciaremos o nginx:
sudo systemctl restart nginx
Modifique o arquivo de hosts locais para teste
Deve ser o endereço do cliente do navegador em que você está acessando o host.
A resolução do nome de domínio consiste primeiro em usar o arquivo hosts local e, em seguida, na Internet. O endereço desse arquivo é / etc / hosts no linux e C: \ Windows \ System32 \ drivers \ etc no windows.
Você pode ver o link em inglês: https://www.howtogeek.com/howto/27350/beginner-geek-how-to-edit-your-hosts-file/ ou meu blog protocolo de resolução de nome de domínio DNS e buffer local
O conteúdo do arquivo mais a resolução de nossos 2 nomes de domínio:
127.0.0.1 localhost
. . .
203.0.113.5 example.com www.example.com
203.0.113.5 test.com www.test.com
Atenção especial aqui: 203.0.113.5 é o endereço de amostra, você deve alterar o endereço ip do seu host, caso contrário o acesso fica errado.
Resultado dos testes
Digite no navegador: example.com
Deve ser exibido da seguinte forma:
Digite no navegador: test.com
Deve ser exibido da seguinte forma:
Se este teste for bem-sucedido, nosso experimento estará concluído. O nome de domínio real não precisa ser resolvido pelos hosts, mas você precisa adquiri-lo. Você pode configurar vários hosts virtuais em um host Linux.