Sobes.tech
Middle

როგორ შევცვალოთ ლიმიტები Nginx კონფიგურაციაში?

sobes.tech AI

პასუხი AI-სგან

ნგინქსის კონფიგურაციის ლიმიტების შეცვლა შესაძლებელია კონფიგურაციის ფაილების რედაქტირებით, რომლებიც ჩვეულებრივ მდებარეობს დირექტორიებში /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 კავშირი თითო პროცესზე
        # სხვა event პარამეტრები...
    }
    
  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): განსაზღვრავს მაქსიმალურ რაოდენობას გახსნილი ფაილებისთვის სამუშაო პროცესისთვის. მნიშვნელოვანია დიდი რაოდენობის კავშირებისთვის.

    # main კონტექსტში
    worker_rlimit_nofile 65535; # მაგალითი: 65535 ფაილი
    

    შენიშვნა: ამ ლიმიტისთვის შეიძლება საჭირო იყოს ოპერაციული სისტემის დონეზე ლიმიტების კონფიგურაცია (ulimit).

ცვლილების ნაბიჯები:

  1. განსაზღვრეთ, რომელი ლიმიტი გსურთ შეცვალოთ და რომელ კონტექსტში (http, server, location, events, main) ვრცელდება.
  2. იპოვეთ შესაბამისი კონფიგურაციის ფაილი (საშუალოდ nginx.conf ან ფაილები conf.d/ ან sites-available/sites-enabled).
  3. დაამატეთ ან შეცვალეთ დირექტივა საჭირო მნიშვნელობით.
    # მაგალითი სერვერის ბლოკში დამატებისთვის
    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
    

ლიმიტების ცვლილებისას მნიშვნელოვანია მათი დანიშნულების და შესაძლო გავლენის გაგება შესრულებაზე და უსაფრთხოებაზე.