Sobes.tech
Middle

Jak zmienić limity w konfiguracji Nginx?

sobes.tech AI

Odpowiedź od AI

Limity w konfiguracji Nginx można zmienić, edytując pliki konfiguracyjne, zwykle znajdujące się w katalogach /etc/nginx/ lub /usr/local/nginx/conf/.

Oto typowe limity i sposoby ich zmiany:

  1. Limit rozmiaru ciała żądania (client_max_body_size): Ustawia maksymalny dozwolony rozmiar ciała żądania klienta. Ważne przy przesyłaniu plików.

    # W kontekście http, server lub location
    client_max_body_size 10M; # Przykład: ustaw limit na 10 megabajtów
    
  2. Limit liczby połączeń (worker_connections): Definiuje maksymalną liczbę jednoczesnych połączeń, które może obsługiwać proces roboczy.

    # W kontekście events
    events {
        worker_connections 1024; # Przykład: 1024 połączenia na proces
        # inne ustawienia zdarzeń...
    }
    
  3. Limit czasu oczekiwania na połączenie (keepalive_timeout): Ustawia czas, przez jaki połączenie keep-alive z klientem pozostaje otwarte po obsłudze ostatniego żądania.

    # W kontekście http, server lub location
    keepalive_timeout 60s; # Przykład: 60 sekund
    
  4. Limit czasu oczekiwania na wysłanie nagłówków żądania (client_header_timeout): Czas oczekiwania na wysłanie nagłówka żądania przez klienta. Jeśli nie zostanie wysłany w tym czasie, połączenie zostanie zamknięte.

    # W kontekście http, server lub location
    client_header_timeout 60s; # Przykład: 60 sekund
    
  5. Limit czasu oczekiwania na wysłanie ciała żądania (client_body_timeout): Czas oczekiwania na wysłanie ciała żądania przez klienta. Jeśli nie zostanie wysłane w tym czasie, połączenie zostanie zamknięte.

    # W kontekście http, server lub location
    client_body_timeout 60s; # Przykład: 60 sekund
    
  6. Limit czasu oczekiwania na odpowiedź serwera proxy (proxy_read_timeout): Czas oczekiwania na otrzymanie odpowiedzi od serwera proxy.

    # W kontekście http, server lub location
    proxy_read_timeout 120s; # Przykład: 120 sekund
    
  7. Limit otwartych plików (worker_rlimit_nofile): Ustawia maksymalną liczbę otwartych plików dla procesu roboczego. Ważne przy dużej liczbie połączeń.

    # W kontekście main (główny kontekst)
    worker_rlimit_nofile 65535; # Przykład: 65535 plików
    

    Uwaga: Dla tego limitu może być również konieczne skonfigurowanie limitów na poziomie systemu operacyjnego (ulimit).

Kroki do zmiany:

  1. Określić, który limit należy zmienić i w jakim kontekście (http, server, location, events, main).
  2. Znaleźć odpowiedni plik konfiguracyjny (zwykle nginx.conf lub pliki w conf.d/ lub sites-available/sites-enabled).
  3. Dodać lub zmodyfikować dyrektywę z odpowiednią wartością.
    # Przykład dodania w bloku server
    server {
        listen 80;
        server_name example.com;
    
        client_max_body_size 50M; # Zmiana limitu ciała żądania dla tego serwera
    
        location / {
            # ...
        }
    }
    
  4. Sprawdzić składnię konfiguracji:
    nginx -t
    
  5. Przeładować Nginx, aby zastosować zmiany:
    sudo systemctl reload nginx
    # lub
    sudo service nginx reload
    

Podczas zmiany limitów ważne jest zrozumienie ich celu i potencjalnego wpływu na wydajność i bezpieczeństwo.