0Pricing
PHP Academy · Aula

Configuração do Nginx e PHP-FPM

Configure o Nginx como proxy reverso para o PHP-FPM ao servir aplicações PHP.

Configuração do Nginx e PHP-FPM é uma aula grátis de PHP Academy no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de PHP Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de PHP Academy inclui 4 aulas no total.

Por que Nginx + PHP-FPM?

Nginx é um servidor web de alto desempenho e um proxy reverso. O PHP-FPM (FastCGI Process Manager) gerencia um conjunto de processos de trabalho do PHP. O Nginx encaminha as requisições do PHP para o FPM por meio do FastCGI.

Bloco básico de servidor do Nginx

Uma configuração mínima do Nginx para uma aplicação PHP.

# /etc/nginx/sites-available/myapp
server {
    listen 80;
    server_name example.com;
    root /srv/myapp/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
    }

    location ~ /\.ht {
        deny all;
    }
}

Diretiva try_files

try_files $uri $uri/ /index.php?$query_string tenta servir primeiro um arquivo estático. Se ele não for encontrado, usa index.php como alternativa, habilitando o roteamento por controlador frontal (Laravel, Symfony).

Configuração do conjunto de processos do PHP-FPM

Configure o conjunto de processos em /etc/php/8.3/fpm/pool.d/www.conf.

[www]
pm = dynamic
pm.max_children      = 20
pm.start_servers     = 5
pm.min_spare_servers = 2
pm.max_spare_servers = 8
pm.max_requests      = 500  ; recycle workers to prevent leaks

Soquete Unix ou TCP

Usar um soquete Unix (fastcgi_pass unix:/run/php/php8.3-fpm.sock) é mais rápido do que usar TCP (127.0.0.1:9000) para a comunicação na mesma máquina.

HTTPS com Let's Encrypt

Use o Certbot para obter certificados TLS gratuitos.

$ certbot --nginx -d example.com
# Certbot modifies your Nginx config and sets up auto-renewal

Compressão Gzip

Ative o gzip para reduzir o tamanho das respostas.

# nginx.conf or server block:
gzip on;
gzip_types text/plain text/css application/javascript application/json;
gzip_min_length 1024;

Armazenamento em cache de recursos estáticos no navegador

Adicione cabeçalhos de controle de cache aos arquivos estáticos.

location ~* \.(js|css|png|jpg|gif|ico|woff2)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}

Limitação de taxa no Nginx

Limite as requisições por IP usando um módulo de limitação de requisições, a primeira linha de defesa antes mesmo de o PHP ser iniciado.

http {
    limit_req_zone $binary_remote_addr zone=one:10m rate=10r/s;
}

server {
    location /api/ {
        limit_req zone=one burst=20 nodelay;
    }
}

Cabeçalhos de segurança

Adicione cabeçalhos de segurança a todas as respostas.

add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
add_header Referrer-Policy "strict-origin-when-cross-origin";

Recarregamento ou reinicialização

Depois de alterar a configuração do Nginx, faça um recarregamento gradual, sem indisponibilidade: nginx -t && nginx -s reload. Depois de alterar a configuração do PHP-FPM: systemctl reload php8.3-fpm.

Resumo

Configure o Nginx com um bloco de servidor que aponte para public/index.php por meio do FastCGI. Ajuste as configurações do conjunto de processos do PHP-FPM. Use soquetes Unix. Ative HTTPS, gzip e o armazenamento em cache de arquivos estáticos.

Verificação rápida

O que faz try_files $uri $uri/ /index.php?$query_string?

Perguntas Frequentes

A aula “Configuração do Nginx e PHP-FPM” é grátis?

Sim — o texto completo de “Configuração do Nginx e PHP-FPM” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de PHP Academy, atualize para CoddyKit PRO. O curso de PHP Academy inclui 4 aulas no total.

O que vou aprender em “Configuração do Nginx e PHP-FPM”?

Configure o Nginx como proxy reverso para o PHP-FPM ao servir aplicações PHP. Você pratica PHP Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar PHP Academy?

Nenhuma experiência prévia é necessária. PHP Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.

Quanto tempo leva a aula “Configuração do Nginx e PHP-FPM”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de PHP Academy?

Sim. Cada aula de PHP Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. Configuração do Nginx e PHP-FPM
  2. Variáveis de ambiente e arquivos .env
  3. Implantação com GitHub Actions
  4. Conteinerização de uma aplicação PHP
← Voltar para PHP Academy