Sobes.tech
Middle

Jak změnit limity v konfiguraci Nginx?

sobes.tech AI

Odpověď od AI

Změna limitů v konfiguraci Nginx se provádí úpravou konfiguračních souborů, které se obvykle nacházejí v adresářích /etc/nginx/ nebo /usr/local/nginx/conf/.

Zde jsou běžné limity a způsoby jejich změny:

  1. Limit velikosti těla požadavku (client_max_body_size): Určuje maximální povolenou velikost těla požadavku klienta. Důležité pro nahrávání souborů.

    # V kontextu http, server nebo location
    client_max_body_size 10M; # Příklad: nastavit limit na 10 megabajtů
    
  2. Limit počtu připojení (worker_connections): Určuje maximální počet současných připojení, která může zpracovat jeden pracovní proces.

    # V kontextu events
    events {
        worker_connections 1024; # Příklad: 1024 připojení na proces
        # další nastavení událostí...
    }
    
  3. Limit doby čekání na spojení (keepalive_timeout): Určuje dobu, po kterou zůstává spojení keep-alive otevřené po zpracování posledního požadavku.

    # V kontextu http, server nebo location
    keepalive_timeout 60s; # Příklad: 60 sekund
    
  4. Limit doby čekání na odeslání hlaviček požadavku (client_header_timeout): Čas čekání od klienta na odeslání hlaviček požadavku. Pokud je překročen, spojení se uzavře.

    # V kontextu http, server nebo location
    client_header_timeout 60s; # Příklad: 60 sekund
    
  5. Limit doby čekání na odeslání těla požadavku (client_body_timeout): Čas čekání od klienta na odeslání těla požadavku. Pokud je překročen, spojení se uzavře.

    # V kontextu http, server nebo location
    client_body_timeout 60s; # Příklad: 60 sekund
    
  6. Limit doby čekání na odpověď od proxy serveru (proxy_read_timeout): Čas čekání na odpověď od proxy serveru.

    # V kontextu http, server nebo location
    proxy_read_timeout 120s; # Příklad: 120 sekund
    
  7. Limit otevřených souborů (worker_rlimit_nofile): Nastavuje maximální počet otevřených souborů pro pracovní proces. Důležité pro velké množství spojení.

    # V hlavním kontextu
    worker_rlimit_nofile 65535; # Příklad: 65535 souborů
    

    Poznámka: Pro tento limit může být také potřeba upravit limity na úrovni operačního systému (ulimit).

Kroky ke změně:

  1. **Určete, který limit je třeba změnit, a v jakém kontextu (http, server, location, events, main).
  2. Najděte odpovídající konfigurační soubor (obvykle nginx.conf nebo soubory v conf.d/ nebo sites-available/sites-enabled).
  3. Přidejte nebo změňte direktivu s požadovanou hodnotou.
    # Příklad přidání do server bloku
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Změna limitu těla požadavku pro tento server
    
        location / {
            # ...
        }
    }
    
  4. Ověřte syntaxi konfigurace:
    nginx -t
    
  5. Restartujte Nginx pro aplikaci změn:
    sudo systemctl reload nginx
    # nebo
    sudo service nginx reload
    

Při změně limitů je důležité pochopit jejich účel a potenciální dopad na výkon a bezpečnost.