Sobes.tech
Middle

Kaip pakeisti limitus Nginx konfigūracijoje?

sobes.tech AI

Atsakymas iš AI

Nginx konfigūracijos limitus galima keisti redaguojant konfigūracijos failus, kurie paprastai yra kataloguose /etc/nginx/ arba /usr/local/nginx/conf/.

Štai dažniausiai naudojami limitai ir kaip juos keisti:

  1. Užklausos kūno dydžio limitas (client_max_body_size): Nustato maksimalų leidžiamą užklausos kūno dydį. Svarbu failų įkėlimui.

    # http, server arba location kontekste
    client_max_body_size 10M; # Pavyzdys: nustatyti limitą iki 10 megabaitų
    
  2. Jungčių skaičiaus limitas (worker_connections): Nustato maksimalų vienu metu galimų jungčių skaičių, kurį gali apdoroti vienas darbo procesas.

    # events kontekste
    events {
        worker_connections 1024; # Pavyzdys: 1024 jungtys vienam procesui
        # kiti įvykio nustatymai...
    }
    
  3. Jungčių laukimo laiko limitas (keepalive_timeout): Nustato laiką, kurį keep-alive jungtis lieka atvira po paskutinio užklausos apdorojimo.

    # http, server arba location kontekste
    keepalive_timeout 60s; # Pavyzdys: 60 sekundžių
    
  4. Laukiamo laiko limitas užklausos antraščių siuntimui (client_header_timeout): Laikas, kurį klientas turi siųsti užklausos antraštę. Jei per šį laiką nebus siųsta, jungtis bus uždaryta.

    # http, server arba location kontekste
    client_header_timeout 60s; # Pavyzdys: 60 sekundžių
    
  5. Laukiamo laiko limitas užklausos kūno siuntimui (client_body_timeout): Laikas, kurį klientas turi siųsti užklausos kūną. Jei per šį laiką nebus siųsta, jungtis bus uždaryta.

    # http, server arba location kontekste
    client_body_timeout 60s; # Pavyzdys: 60 sekundžių
    
  6. Atsakymo laukimo laiko limitas (proxy_read_timeout): Laikas, per kurį laukiama atsakymo iš proxy serverio.

    # http, server arba location kontekste
    proxy_read_timeout 120s; # Pavyzdys: 120 sekundžių
    
  7. Atvirų failų limitas (worker_rlimit_nofile): Nustato maksimalų atvirų failų skaičių darbo procese. Svarbu daug jungčių.

    # pagrindiniame kontekste
    worker_rlimit_nofile 65535; # Pavyzdys: 65535 failų
    

    Pastaba: Šiam limitui gali prireikti konfigūruoti operacinės sistemos limitus (ulimit).

Žingsniai keisti:

  1. Nustatyti, kurį limitą reikia keisti ir kokiame kontekste jis taikomas (http, server, location, events, main).
  2. Rasti atitinkamą konfigūracijos failą (paprastai nginx.conf arba failus conf.d/ arba sites-available/sites-enabled).
  3. Pridėti arba pakeisti direktyvą su norima reikšme.
    # Pavyzdys, pridėtas serverio bloke
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Šio serverio užklausos kūno limito keitimas
    
        location / {
            # ...
        }
    }
    
  4. Patikrinti konfigūracijos sintaksę:
    nginx -t
    
  5. Perkrauti Nginx, kad taikyti pakeitimus:
    sudo systemctl reload nginx
    # arba
    sudo service nginx reload
    

Keičiant limitus, svarbu suprasti jų paskirtį ir galimą poveikį našumui bei saugumui.