Sobes.tech
Middle

Nginx konfiqurasiyasında limitləri necə dəyişdirmək olar?

sobes.tech Süni İntellekt

AI-dan cavab

Nginx konfiqurasiyasında limitləri dəyişdirmək üçün adətən /etc/nginx/ və ya /usr/local/nginx/conf/ qovluqlarında yerləşən konfiqurasiya fayllarını redaktə etmək lazımdır.

Budur yaygın limitlər və onların dəyişdirilməsi üsulları:

  1. Tələbin bədən ölçüsü limiti (client_max_body_size): Müştərinin tələbinin maksimum bədən ölçüsünü təyin edir. Fayl yükləmələri üçün vacibdir.

    # http, server və ya location kontekstində
    client_max_body_size 10M; # Məsələn: limiti 10 megabayt olaraq təyin et
    
  2. Qoşulma sayı limiti (worker_connections): Bir işçi prosesi tərəfindən işlənə biləcək maksimum eyni zamanda qoşulma sayını təyin edir.

    # events kontekstində
    events {
        worker_connections 1024; # Məsələn: hər proses üçün 1024 qoşulma
        # digər event parametrləri...
    }
    
  3. Qoşulma gözləmə vaxtı limiti (keepalive_timeout): Müştəri ilə keep-alive əlaqəsinin açıq qalma müddətini təyin edir.

    # http, server və ya location kontekstində
    keepalive_timeout 60s; # Məsələn: 60 saniyə
    
  4. Tələbin başlıqlarını göndərmə vaxtı limiti (client_header_timeout): Müştərinin tələbinin başlığını göndərməsi üçün gözləmə müddəti. Bu müddət ərzində müştəri başlıq göndərməzsə, əlaqə bağlanır.

    # http, server və ya location kontekstində
    client_header_timeout 60s; # Məsələn: 60 saniyə
    
  5. Tələbin bədənini göndərmə vaxtı limiti (client_body_timeout): Müştərinin tələbinin bədənini göndərməsi üçün gözləmə müddəti. Bu müddət ərzində müştəri bədən göndərməzsə, əlaqə bağlanır.

    # http, server və ya location kontekstində
    client_body_timeout 60s; # Məsələn: 60 saniyə
    
  6. Proksi serverdən cavab alma vaxtı limiti (proxy_read_timeout): Proksi serverdən cavab alınması üçün gözləmə müddəti.

    # http, server və ya location kontekstində
    proxy_read_timeout 120s; # Məsələn: 120 saniyə
    
  7. Açıq faylların limiti (worker_rlimit_nofile): İşçi prosesi üçün açıq faylların maksimum sayını təyin edir. Çox sayda əlaqə üçün vacibdir.

    # main kontekstində
    worker_rlimit_nofile 65535; # Məsələn: 65535 fayl
    

    Qeyd: Bu limit üçün əməliyyat sistemində də limitlərin tənzimlənməsi lazım ola bilər (ulimit).

Dəyişiklik addımları:

  1. **Hansı limiti dəyişdirmək lazım olduğunu və hansı kontekstdə (http, server, location, events, main) tətbiq olunduğunu müəyyən et.
  2. **Uyğun konfiqurasiya faylını tap (adətən nginx.conf və ya conf.d/ və ya sites-available/sites-enabled faylları).
  3. **Lazımi dırnaq və ya direktivi əlavə et və ya dəyişdir.
    # server blokuna nümunə əlavə etmək
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Bu server üçün tələbin bədən limiti
    
        location / {
            # ...
        }
    }
    
  4. Konfiqurasiya sintaksisini yoxla:
    nginx -t
    
  5. Dəyişiklikləri tətbiq etmək üçün Nginx-i yenidən başlat:
    sudo systemctl reload nginx
    # və ya
    sudo service nginx reload
    

Limitlərin dəyişdirilməsi zamanı onların məqsədini və potensial təsirlərini anlamaq vacibdir, xüsusən də performans və təhlükəsizlik baxımından.