Sobes.tech
Middle

Koje limite mogu postojati na nginx serveru i sa čim mogu biti povezani?

sobes.tech АИ

Одговор од АИ

Nginx limiti mogu biti povezani sa performansama, sigurnošću i sistemskim resursima.

Glavni limiti:

  • worker_processes: Ograničava broj radnih procesa Nginx-a. Povezan je sa brojem jezgara procesora i dostupnom memorijom. Prevelika vrednost može dovesti do overhead-a pri prebacivanju konteksta, dok premala - do neefikasnog korišćenja resursa.
  • worker_connections: Maksimalni broj istovremenih veza koje može da obradi jedan radni proces. Povezan je sa fajl deskriptorima operativnog sistema (ulimit -n) i dostupnom memorijom.
  • client_max_body_size: Maksimalna dozvoljena veličina tela zahteva klijenta. Povezana je sa prevencijom DoS napada slanjem veoma velikih zahteva.
  • limit_conn / limit_req: Moduli za ograničavanje broja istovremenih veza ili brzine zahteva od jedne IP adrese. Koriste se za zaštitu od DoS napada i zloupotreba.
  • open_file_cache max: Maksimalan broj zapisa u keš memoriji otvorenih fajlova. Povezan je sa brojem istovremeno otvorenih fajlova i dostupnom memorijom. Utice na performanse pri radu sa velikim brojem fajlova (npr. statički fajlovi, logovi).
  • proxy_buffer_size / proxy_buffers: Veličine i broj bafera za proxy odgovore. Povezani su sa memorijom. Neispravne vrednosti mogu dovesti do grešaka ili neefikasnog korišćenja memorije.
  • Timeout-ovi:
    • client_body_timeout: Timeout između primanja delova tela zahteva klijenta.
    • client_header_timeout: Timeout između primanja zaglavlja zahteva klijenta.
    • send_timeout: Timeout između slanja podataka klijentu.
    • keepalive_timeout: Timeout za održavanje keep-alive veza. Povezani su sa stabilnošću veze i zaštitom od sporih napada.
  • resolver_timeout: Timeout za rešavanje DNS imena. Povezan je sa dostupnošću DNS servera i stabilnošću mreže.

Limiti mogu zavisiti od:

  • Operativnog sistema: Sistemskih limita na broj fajl deskriptorа, niti, obim memorije.
  • Hardverskih resursa: Broja jezgara procesora, obima RAM memorije, propusnosti mreže.
  • Opterećenja: Očekivanog broja istovremenih korisnika, intenziteta zahteva.
  • Konfiguracije Nginx: Direktiva u konfiguracionim fajlovima.
  • Bezbednosti: Potrebe za zaštitom od DoS napada, pokušaja proboja lozinki i drugih pretnji.

Primer konfiguracije worker_processes i worker_connections:

# Određujemo broj radnih procesa u skladu sa dostupnim jezgrama CPU.
worker_processes auto;

# Maksimalan broj veza koje može da obradi jedan radni proces.
# 65535 - tipična vrednost za Linux, ali treba proveriti ulimit -n
# 1024 (podrazumevano) * worker_processes - ukupni broj veza koje Nginx može da obradi.
events {
    worker_connections 65535;
}

Tabela sa primerima limita:

Limit Veza sa Tipična vrednost
worker_processes CPU auto
worker_connections Fajl deskriptori, memorija 1024 - 65535
client_max_body_size Bezbednost 1m - 100m
limit_conn Bezbednost, opterećenje Zavisno od politike
keepalive_timeout Performanse, opterećenje 60s - 120s
open_file_cache max Memorija, broj fajlova 1000 - 100000

Pravilno podešavanje limita je ključno za stabilnost, performanse i sigurnost Nginx-a. Često zahteva monitoring i iterativno prilagođavanje.