Configurando Virtual Host no Nginx
Aprenda a instalação e a configuração básica de como criar um server block com o servidor web Nginx
Fala pessoal tudo beleza?
Hoje vou mostrar como é fácil instalar e configurar o Nginx que é um servidor web, proxy reverso, proxy balanceador de carga e tem um desempenho muito bom.
Existem muitas configurações que podemos fazer para melhorar nosso servidor em termos de desempenho e segurança, quero mostrar aqui algumas delas. Irei dividir esse artigo em algumas partes para não ficar muito extenso. Aqui irei começar com a instalação e configuração básica.
Após a leitura desse artigo, acesse meu outro artigo Instalando Let's Encrypt no Ubuntu e Debian com Nginx e complemente a configuração do seu servidor web com certificado SSL gratuito
Instalação
Estou utilizando a distribuição GNU/Linux Debian 9 para esse exemplo. Nada impede que use uma diferente, apenas adapte o comando para o seu sistema.
apt update && apt install -y nginx
Após finalizar a instalação você já pode conferir se seu servidor local esta rodando corretamente. Entre com o endereço http://localhost
e veja se a página de boas vindas do Nginx apareceu.
Comandos básicos
Para saber sobre o status, para reiniciar o serviço e checar se as configurações alteradas foram bem sucedidas utilizamos os comandos abaixo:
Verificar o status do serviço Nginx.
service nginx status
Iniciar, parar ou reiniciar o serviço.
service nginx start / stop / restart
Checar se alterações feitas estão corretas.
nginx -t
Configurando Nginx
Os arquivos de configuração ficam em /etc/nginx
por padrão. No diretório sites-available
ficam os arquivos de configuração dos sites e no diretório sites-enabled
ficam os sites que estão ativos no servidor, que na verdade é um link simbólico para o diretório sites-available
.
No diretório sites-available temos um arquivo chamado default que é o arquivo padrão do Nginx. Essa é a configuração usada quando acessamos a página de boas vindas após a instalação.
Vamos criar uma configuração nova, para isso entre no diretório /etc/nginx/sites-available
e crie um arquivo vazio para o nosso site:
touch example.com
Abra o arquivo com seu editor e cole todo o conteúdo abaixo nele.
server {
# Porta WEB
listen 80 default_server;
listen [::]:80 default_server;
# Nome do servidor
server_name example.com www.example.com;
# Diretorio de Log
access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log;
rewrite_log on;
# Diretorio dos arquivos web
root /usr/share/nginx/html/example.com;
# Extensões de arquivos que serão lidos
index index.php index.html;
client_max_body_size 128M;
# URL amigáveis
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# Configurações PHP FPM.
location ~* \.php$ {
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
include /etc/nginx/fastcgi_params;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
# Bloqueia arquivo com .ht (Nginx não utiliza o .htaccess como o Apache)
location ~ /\.ht {
deny all;
}
# Configura cache das extensões abaixo para expirar em 365 dias
location ~* \.(?:ico|css|js|jpe?g|JPG|png|svg|woff)$ {
expires 365d;
}
}
No arquivo acima definimos algumas configurações essenciais para o funcionamento do um site. Vou ressaltar as principais.
- Na linha
listen
devemos colocar a porta que o Nginx escutará que é a porta padrão 80. A opçãodefault_server
deverá ser usada em somente uma configuração, pois essa será a principal do servidor. - Na linha
server_name
deverá ser inserido o nome do seu domínio. - Na directiva
root
deverá ser o caminho da sua aplicação, dos seus arquivos em PHP por exemplo. - No bloco de configurações do PHP é usado o PHP 7.1, caso esteja usando outra versão do PHP deve ser alterado a opção
fastcgi_pass unix:/run/php/php7.1-fpm.sock;
alterando o php7.1 para a versão instalada no seu servidor.
Testando nossa configuração
Precisamos testar nossa configuração após essas alterações, para isso execute o comando abaixo:
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Se o retorno for igual a resposta acima quer dizer que deu tudo certo. Agora devemos ativar esse site para termos acesso a ele no navegador e reiniciar o serviço Nginx. Entre no diretório /etc/nginx/sites-enabled
e digite o comando:
ln -s /etc/nginx/sites-available/example.com
service nginx restart
Pronto, agora seu site deve estar no ar.
Nesse artigo falei sobre uma configuração mais básica do Nginx. Irei fazer uma segunda parte onde irei dar algumas dicas para melhorar o desempenho ativando o cache do Nginx e como configurar para utilizar um certificado SSL grátis.
Até a próxima!