Nginx é um servidor web de código aberto que é amplamente utilizado por sua alta performance, estabilidade e baixo consumo de recursos. Ele pode ser usado como um servidor web, um servidor proxy reverso, um balanceador de carga e um cache HTTP. Neste artigo, vamos explorar como instalar e configurar o Nginx em um servidor, além de algumas práticas recomendadas para otimização e segurança.
O que é o Nginx?
Nginx (pronunciado “engine x”) foi originalmente desenvolvido por Igor Sysoev e lançado em 2004. Ele foi projetado para resolver o problema do C10k, ou seja, lidar com 10.000 conexões simultâneas. Hoje, ele é conhecido por sua capacidade de lidar com um grande número de conexões simultâneas com eficiência.
Passo a Passo para Instalar e Configurar o Nginx
1. Instalando o Nginx
A instalação do Nginx pode variar dependendo do sistema operacional. Aqui, vamos cobrir a instalação em sistemas baseados em Debian (como Ubuntu) e em sistemas baseados em RHEL (como CentOS).
Para Debian/Ubuntu:
sudo apt update
sudo apt install nginx
Para RHEL/CentOS:
sudo yum install epel-release
sudo yum install nginx
Após a instalação, inicie o serviço do Nginx e habilite-o para iniciar automaticamente ao boot:
sudo systemctl start nginx
sudo systemctl enable nginx
2. Configurando o Nginx
Os arquivos de configuração do Nginx estão localizados em /etc/nginx/
. O arquivo principal de configuração é o nginx.conf
, mas a configuração do servidor é frequentemente feita em arquivos separados dentro do diretório sites-available
(para configurações disponíveis) e sites-enabled
(para configurações ativas).
Configuração Básica:
Crie um novo arquivo de configuração para seu site:
sudo nano /etc/nginx/sites-available/meusite
Adicione a seguinte configuração básica:
server {
listen 80;
server_name meusite.com www.meusite.com;
root /var/www/meusite;
index index.html index.htm;
location / {
try_files $uri $uri/ =404;
}
}
Ative a configuração criando um link simbólico no diretório sites-enabled
:
sudo ln -s /etc/nginx/sites-available/meusite /etc/nginx/sites-enabled/
Verifique a configuração e reinicie o Nginx:
3. Segurança e Otimização
Usando Certificados SSL:
Instale o Certbot para obter certificados SSL gratuitos do Let’s Encrypt:
sudo apt install certbot python3-certbot-nginx
Obtenha e instale o certificado:
sudo certbot --nginx -d meusite.com -d www.meusite.com
Configurações de Segurança Adicionais:
Edite o arquivo de configuração do seu site para incluir cabeçalhos de segurança:
server {
listen 80;
server_name meusite.com www.meusite.com;
# Redirecionar para HTTPS
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name meusite.com www.meusite.com;
root /var/www/meusite;
index index.html index.htm;
ssl_certificate /etc/letsencrypt/live/meusite.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/meusite.com/privkey.pem;
location / {
try_files $uri $uri/ =404;
}
# Cabeçalhos de segurança
add_header X-Content-Type-Options nosniff;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
}
Otimização de Desempenho:
Edite o nginx.conf
para ajustar o número de trabalhadores e outras configurações de performance:
worker_processes auto;
events {
worker_connections 1024;
}
http {
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
include /etc/nginx/mime.types;
default_type application/octet-stream;
# Gzip Settings
gzip on;
gzip_disable "msie6";
# Additional Settings
client_max_body_size 64M;
server_tokens off;
}
Conclusão
Configurar e otimizar um servidor web Nginx pode parecer uma tarefa complexa, mas com o passo a passo correto, você pode facilmente configurar seu próprio servidor web eficiente e seguro. O Nginx oferece muitas funcionalidades e é uma excelente escolha para hospedagem de sites de alto desempenho.