Sobes.tech
Middle

Como alterar os limites na configuração do Nginx?

sobes.tech IA

Resposta da IA

Os limites na configuração do Nginx podem ser alterados editando os ficheiros de configuração, geralmente localizados nos diretórios /etc/nginx/ ou /usr/local/nginx/conf/.

Aqui estão os limites comuns e como alterá-los:

  1. Limite de tamanho do corpo da solicitação (client_max_body_size): Define o tamanho máximo permitido do corpo da solicitação do cliente. É importante para uploads de ficheiros.

    # No contexto de http, server ou location
    client_max_body_size 10M; # Exemplo: definir limite para 10 megabytes
    
  2. Limite de ligações (worker_connections): Define o número máximo de ligações simultâneas que um processo de trabalho pode gerir.

    # No contexto de eventos
    events {
        worker_connections 1024; # Exemplo: 1024 ligações por processo
        # outras configurações de eventos...
    }
    
  3. Limite de tempo de espera da ligação (keepalive_timeout): Define o tempo durante o qual a ligação keep-alive com o cliente permanece aberta após o processamento da última solicitação.

    # No contexto de http, server ou location
    keepalive_timeout 60s; # Exemplo: 60 segundos
    
  4. Limite de tempo de espera para enviar cabeçalhos de solicitação (client_header_timeout): Tempo de espera para o cliente enviar o cabeçalho da solicitação. Se o cliente não o enviar nesse tempo, a ligação será fechada.

    # No contexto de http, server ou location
    client_header_timeout 60s; # Exemplo: 60 segundos
    
  5. Limite de tempo de espera para enviar o corpo da solicitação (client_body_timeout): Tempo de espera para o cliente enviar o corpo da solicitação. Se o cliente não o enviar nesse tempo, a ligação será fechada.

    # No contexto de http, server ou location
    client_body_timeout 60s; # Exemplo: 60 segundos
    
  6. Limite de tempo de espera para a resposta do servidor proxy (proxy_read_timeout): Tempo de espera para receber a resposta do servidor proxy.

    # No contexto de http, server ou location
    proxy_read_timeout 120s; # Exemplo: 120 segundos
    
  7. Limite de ficheiros abertos (worker_rlimit_nofile): Define o número máximo de ficheiros abertos para o processo de trabalho. É importante para muitas ligações.

    # No contexto main (contexto principal)
    worker_rlimit_nofile 65535; # Exemplo: 65535 ficheiros
    

    Nota: Para este limite, pode também ser necessário configurar os limites ao nível do sistema operativo (ulimit).

Passos para alterar:

  1. Determinar qual limite precisa de ser alterado e em que contexto (http, server, location, events, main).
  2. Encontrar o ficheiro de configuração correspondente (geralmente nginx.conf ou ficheiros em conf.d/ ou sites-available/sites-enabled).
  3. Adicionar ou alterar a diretiva com o valor desejado.
    # Exemplo de adição no bloco server
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Alteração do limite do corpo da solicitação para este servidor
    
        location / {
            # ...
        }
    }
    
  4. Verificar a sintaxe da configuração:
    nginx -t
    
  5. Reiniciar o Nginx para aplicar as alterações:
    sudo systemctl reload nginx
    # ou
    sudo service nginx reload
    

Ao alterar os limites, é importante compreender o seu propósito e o impacto potencial na performance e na segurança.