Sobes.tech
Middle

Kuidas muuta limiite Nginx konfiguratsioonis?

sobes.tech AI

Vastus AI-lt

Nginx konfigurācijas limitus var mainīt, rediģējot konfigurācijas failus, kas parasti atrodas direktorijās /etc/nginx/ vai /usr/local/nginx/conf/.

Šeit ir biežāk sastopamie limiti un to maiņas veidi:

  1. Pieprasījuma ķermeņa lieluma limits (client_max_body_size): Nosaka maksimālo pieļaujamo pieprasījuma ķermeņa lielumu. Svarīgi failu augšupielādei.

    # http, server vai location kontekstā
    client_max_body_size 10M; # Piemērs: iestatīt limitu uz 10 megabaitiem
    
  2. Jungļu skaita limits (worker_connections): Nosaka maksimālo vienlaicīgo savienojumu skaitu, ko var apstrādāt viens darba process.

    # events kontekstā
    events {
        worker_connections 1024; # Piemērs: 1024 savienojumi vienam procesam
        # citi notikumu iestatījumi...
    }
    
  3. Jungļu gaidīšanas laika limits (keepalive_timeout): Nosaka laiku, cik ilgi keep-alive savienojums paliek atvērts pēc pēdējās pieprasījuma apstrādes.

    # http, server vai location kontekstā
    keepalive_timeout 60s; # Piemērs: 60 sekundes
    
  4. Gaidīšanas laika limits pieprasījuma galvenes sūtīšanai (client_header_timeout): Laiks, cik ilgi klients var sūtīt pieprasījuma galveni. Ja šajā laikā netiek sūtīts, savienojums tiks slēgts.

    # http, server vai location kontekstā
    client_header_timeout 60s; # Piemērs: 60 sekundes
    
  5. Gaidīšanas laika limits pieprasījuma ķermeņa sūtīšanai (client_body_timeout): Laiks, cik ilgi klients var sūtīt pieprasījuma ķermeni. Ja šajā laikā netiek sūtīts, savienojums tiks slēgts.

    # http, server vai location kontekstā
    client_body_timeout 60s; # Piemērs: 60 sekundes
    
  6. Atbildes gaidīšanas laika limits (proxy_read_timeout): Laiks, cik ilgi gaidīt atbildi no proxy servera.

    # http, server vai location kontekstā
    proxy_read_timeout 120s; # Piemērs: 120 sekundes
    
  7. Atvērto failu limits (worker_rlimit_nofile): Nosaka maksimālo atvērto failu skaitu darba procesā. Svarīgi daudz savienojumu gadījumā.

    # galvenajā kontekstā
    worker_rlimit_nofile 65535; # Piemērs: 65535 failu
    

    Piezīme: Šim limitam var būt nepieciešama arī operētājsistēmas līmeņa limitu konfigurācija (ulimit).

Pāreja pie maiņas:

  1. Noteikt, kuru limitu nepieciešams mainīt un kādā kontekstā tas attiecas (http, server, location, events, main).
  2. Atrast atbilstošo konfigurācijas failu (parasti nginx.conf vai faili conf.d/ vai sites-available/sites-enabled).
  3. Pridėti arba pakeisti direktyvą ar nepieciešamo vērtību.
    # Piemērs, pievienojot servera blokam
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Šī servera pieprasījuma ķermeņa limita maiņa
    
        location / {
            # ...
        }
    }
    
  4. Pārbaudīt konfigurācijas sintaksi:
    nginx -t
    
  5. Pārlādēt Nginx, lai piemērotu izmaiņas:
    sudo systemctl reload nginx
    # vai
    sudo service nginx reload
    

Mainot limitus, ir svarīgi saprast to nozīmi un potenciālo ietekmi uz veiktspēju un drošību.