Sobes.tech
Middle

Чӣ маҳдудиятҳо метавонанд дар сервери nginx вуҷуд дошта бошанд ва бо чӣ метавонанд алоқаманд бошанд?

sobes.tech AI

Ҷавоб аз AI

Маҳдудиятҳои Nginx метавонанд бо иҷроиш, бехатарӣ ва захираҳои системӣ алоқаманд бошанд.

Маҳдудиятҳои асосӣ:

  • worker_processes: Миқдори равандҳои кории Nginx-ро маҳдуд мекунад. Бо шумораи ядраҳои процессор ва ҳаҷми хотираи дастрас алоқаманд аст. Қимати хеле калон метавонад ба харҷи иловагии гузариш ба контекст оварда расонад, дар ҳоле ки хеле ками он истифодаи номукаммалонаи захираҳоро ба вуҷуд меорад.
  • worker_connections: Максимум шумораи пайвастагиҳои ҳамзамон, ки як раванди корӣ метавонад идора кунад. Бо дескрипторҳои файлҳои системаи амалӣ (ulimit -n) ва хотираи дастрас алоқаманд аст.
  • client_max_body_size: Ҳаҷми максималии мӯътадили бадани дархости муштарӣ. Бо пешгирии ҳамлаҳои "хизматрасонии рад" (DoS) тавассути фиристодани дархостҳои хеле калон алоқаманд аст.
  • limit_conn / limit_req: Модулҳо барои маҳдуд кардани шумораи пайвастагиҳои ҳамзамон ё суръати дархостҳо аз як IP. Барои муҳофизат аз ҳамлаҳои DoS ва зӯроварӣ истифода мешаванд.
  • open_file_cache max: Максимум сабтҳо дар кеши файлҳои кушод. Бо шумораи файлҳои ҳамзамон кушод ва хотираи дастрас алоқаманд аст. Дар кор бо шумораи зиёди файлҳо (масалан, файлҳои статикӣ, логҳо) ба иҷроиш таъсир мерасонад.
  • proxy_buffer_size / proxy_buffers: Андозаҳо ва шумораи буферҳо барои ҷавобҳои прокси. Бо хотира алоқаманданд. Арзиши нодуруст метавонад ба хатоҳо ё истифодаи номукаммалонаи хотира оварда расонад.
  • Вақтҳо:
    • client_body_timeout: Вақти интизорӣ байни гирифтани қисмҳои бадани дархости муштарӣ.
    • client_header_timeout: Вақти интизорӣ байни гирифтани сарлавҳаҳои дархости муштарӣ.
    • send_timeout: Вақти интизорӣ байни фиристодани маълумот ба муштарӣ.
    • keepalive_timeout: Вақти нигоҳ доштани пайвастагиҳои keep-alive. Бо устувории пайвастӣ ва муҳофизат аз ҳамлаҳои суст алоқаманданд.
  • resolver_timeout: Вақти интизорӣ барои ҳал кардани номҳои DNS. Бо дастрасии серверҳои DNS ва устувории шабака алоқаманд аст.

Маҳдудиятҳо метавонанд вобаста бошанд:

  • Системаи амалӣ: Маҳдудиятҳои системӣ барои шумораи дескрипторҳои файлҳо, сӯрохиҳо, ҳаҷми хотира.
  • Воридотҳои сахтафзор: Шумораи ядраҳои процессор, ҳаҷми RAM, суръати шабака.
  • Бориш: Шумораи эҳтимолии корбарони ҳамзамон, шиддати дархостҳо.
  • Конфигуратсияи Nginx: Директивҳо дар файлҳои конфигуратсия.
  • Бехатарӣ: Зарурияти муҳофизат аз ҳамлаҳои DoS, кӯшишҳои шикастани паролҳо ва таҳдидҳои дигар.

Маслиҳат барои танзими worker_processes ва worker_connections:

# Шумораи равандҳои кориро мувофиқи ядраҳои CPU муайян мекунем.
worker_processes auto;

# Максимум шумораи пайвастагиҳо, ки як раванди корӣ метавонад идора кунад.
# 65535 - арзиши оддӣ барои Linux, аммо бояд `ulimit -n` санҷида шавад
# 1024 (аз пешгузашта) * worker_processes - шумораи умумии пайвастагиҳо, ки Nginx метавонад идора кунад.
events {
    worker_connections 65535;
}

Таблица бо намунаҳои маҳдудият:

Маҳдудият Бо чӣ алоқаманд Арзиши оддӣ
worker_processes CPU auto
worker_connections Дескрипторҳои файлҳо, хотира 1024 - 65535
client_max_body_size Бехатарӣ 1m - 100m
limit_conn Бехатарӣ, бориш Аз сиёсати вобаста
keepalive_timeout Иҷроиш, бориш 60s - 120s
open_file_cache max Хотира, шумораи файлҳо 1000 - 100000

Танзимоти дурустии маҳдудиятҳо барои устуворӣ, иҷроиш ва бехатарии Nginx муҳим аст. Ин бисёр вақт ниёз ба мониторинг ва танзими такрорӣ дорад.