Sobes.tech
Middle

Ինչպես փոխել սահմանները Nginx կոնֆիգուրացիայում?

sobes.tech AI

Պատասխան AI-ից

Nginx կոնֆիգուրացիայի սահմանափակումները փոփոխելու համար անհրաժեշտ է խմբագրել կոնֆիգուրացիոն ֆայլերը, որոնք սովորաբար գտնվում են /etc/nginx/ կամ /usr/local/nginx/conf/ թղթապանակներում:

Ահա տարածված սահմանափակումներն ու դրանց փոփոխման եղանակները:

  1. Հարցման մարմնի չափի սահմանափակում (client_max_body_size): Սահմանում է հաճախորդի հարցման մարմնի առավելագույն թույլատրելի չափը: Կարևոր է ֆայլերի բեռնման համար:

    # http, server կամ location կոնտեքստում
    client_max_body_size 10M; # Օրինակ՝ սահմանել 10 մեգաբայթ
    
  2. Կապերի քանակի սահմանափակում (worker_connections): Սահմանում է առավելագույն միաժամանակյա կապերի քանակը, որը կարող է մշակել մեկ աշխատանքային պրոցեսը:

    # events կոնտեքստում
    events {
        worker_connections 1024; # Օրինակ՝ 1024 կապեր մեկ պրոցեսում
        # այլ կարգավորումներ...
    }
    
  3. Կապի սպասման ժամանակի սահմանափակում (keepalive_timeout): Սահմանում է ժամանակը, որի ընթացքում keep-alive կապը մնում է բաց հետո վերջին հարցման մշակման:

    # http, server կամ location կոնտեքստում
    keepalive_timeout 60s; # Օրինակ՝ 60 վայրկյան
    
  4. Հարցման գլխագրերի ուղարկման սպասման ժամանակի սահմանափակում (client_header_timeout): Ժամանակը, որը սպասում է հաճախորդը հարցման գլխագրերի ուղարկմանը:

    # http, server կամ location կոնտեքստում
    client_header_timeout 60s; # Օրինակ՝ 60 վայրկյան
    
  5. Հարցման մարմնի ուղարկման սպասման ժամանակի սահմանափակում (client_body_timeout): Ժամանակը, որը սպասում է հաճախորդը մարմնի ուղարկմանը:

    # http, server կամ location կոնտեքստում
    client_body_timeout 60s; # Օրինակ՝ 60 վայրկյան
    
  6. Պրոքսի պատասխան ստանալու ժամանակի սահմանափակում (proxy_read_timeout): Ժամանակը, որը սպասում է պատասխանին պրոքսի սերվերից:

    # http, server կամ location կոնտեքստում
    proxy_read_timeout 120s; # Օրինակ՝ 120 վայրկյան
    
  7. Բաց ֆայլերի սահմանափակում (worker_rlimit_nofile): Սահմանում է բաց ֆայլերի առավելագույն քանակը աշխատանքային պրոցեսի համար:

    # հիմնական կոնտեքստում
    worker_rlimit_nofile 65535; # Օրինակ՝ 65535 ֆայլ
    

    Նշում: Այս սահմանափակման համար կարող է անհրաժեշտ լինել նաև օպերացիոն համակարգի մակարդակով սահմանափակումների կարգավորում:

Փոփոխությունների քայլերը:

  1. Նշեք, թե որ սահմանափակումը պետք է փոխել և որ կոնտեքստում (http, server, location, events, main):
  2. գտեք համապատասխան կոնֆիգուրացիոն ֆայլը (հաճախ nginx.conf կամ ֆայլեր conf.d/ կամ sites-available/sites-enabled թղթապանակներում):
  3. Ավելացրեք կամ փոփոխեք հրահանգը ցանկալի արժեքով:
    # Օրինակ՝ ավելացնել server բլոկում
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Այս սերվերի համար հարցման մարմնի սահմանափակումը փոխել
    
        location / {
            # ...
        }
    }
    
  4. Ստուգեք կոնֆիգուրացիայի սինտաքսին:
    nginx -t
    
  5. Վերագործարկեք Nginx-ը փոփոխությունները կիրառելու համար:
    sudo systemctl reload nginx
    # կամ
    sudo service nginx reload
    

Լիմիտների փոփոխության ժամանակ կարևոր է հասկանալ նրանց նշանակությունը և հնարավոր ազդեցությունը արտադրողականության և անվտանգության վրա։