Sobes.tech
Middle

Ako zmeniť limity v konfigurácii Nginx?

sobes.tech AI

Odpoveď od AI

Zmena limitov v konfigurácii Nginx sa vykonáva úpravou konfiguračných súborov, ktoré sa zvyčajne nachádzajú v adresároch /etc/nginx/ alebo /usr/local/nginx/conf/.

Tu sú bežné limity a spôsoby ich zmeny:

  1. Limit veľkosti tela požiadavky (client_max_body_size): Určuje maximálnu povolenú veľkosť tela požiadavky klienta. Dôležité pre nahrávanie súborov.

    # V kontexte http, server alebo location
    client_max_body_size 10M; # Príklad: nastaviť limit na 10 megabajtov
    
  2. Limit počtu pripojení (worker_connections): Určuje maximálny počet súčasných pripojení, ktoré môže spracovať jeden pracovný proces.

    # V kontexte events
    events {
        worker_connections 1024; # Príklad: 1024 pripojení na proces
        # ďalšie nastavenia udalostí...
    }
    
  3. Limit času čakania na spojenie (keepalive_timeout): Určuje dobu, počas ktorej keep-alive spojenie so zákazníkom zostáva otvorené po spracovaní poslednej požiadavky.

    # V kontexte http, server alebo location
    keepalive_timeout 60s; # Príklad: 60 sekúnd
    
  4. Limit času čakania na odoslanie hlavičiek požiadavky (client_header_timeout): Čas čakania od klienta na odoslanie hlavičiek požiadavky. Ak ich neodošle v tomto čase, spojenie sa zatvorí.

    # V kontexte http, server alebo location
    client_header_timeout 60s; # Príklad: 60 sekúnd
    
  5. Limit času čakania na odoslanie tela požiadavky (client_body_timeout): Čas čakania od klienta na odoslanie tela požiadavky. Ak ho neodošle v tomto čase, spojenie sa zatvorí.

    # V kontexte http, server alebo location
    client_body_timeout 60s; # Príklad: 60 sekúnd
    
  6. Limit času čakania na odpoveď od proxy servera (proxy_read_timeout): Čas čakania na získanie odpovede od proxy servera.

    # V kontexte http, server alebo location
    proxy_read_timeout 120s; # Príklad: 120 sekúnd
    
  7. Limit otvorených súborov (worker_rlimit_nofile): Nastavuje maximálny počet otvorených súborov pre pracovný proces. Dôležité pre veľký počet spojení.

    # V hlavnom kontexte
    worker_rlimit_nofile 65535; # Príklad: 65535 súborov
    

    Poznámka: Pre tento limit môže byť potrebné aj nastavenie limitov na úrovni operačného systému (ulimit).

Kroky na zmenu:

  1. **Určte, ktorý limit je potrebné zmeniť, a v akom kontexte (http, server, location, events, main).
  2. Nájdite príslušný konfiguračný súbor (zvyčajne nginx.conf alebo súbory v conf.d/ alebo sites-available/sites-enabled).
  3. Pridajte alebo upravte direktívu s požadovanou hodnotou.
    # Príklad pridania do server bloku
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Zmena limitu tela požiadavky pre tento server
    
        location / {
            # ...
        }
    }
    
  4. Skontrolujte syntax konfigurácie:
    nginx -t
    
  5. Reštartujte Nginx na aplikáciu zmien:
    sudo systemctl reload nginx
    # alebo
    sudo service nginx reload
    

Pri zmene limitov je dôležité pochopiť ich účel a potenciálny vplyv na výkon a bezpečnosť.