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 megabytes
    
  2. Όριο αριθμού συνδέσεων (worker_connections): Ορίζει τον μέγιστο αριθμό ταυτόχρονων συνδέσεων που μπορεί να διαχειριστεί μια εργασία (worker process).

    # Στο πλαίσιο των 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): Ο χρόνος αναμονής για λήψη απάντησης από τον διαμεσολαβητή server.

    # Στο πλαίσιο του 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
    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
    

Κατά την αλλαγή των ορίων, είναι σημαντικό να κατανοείτε τον σκοπό τους και την πιθανή επίδρασή τους στην απόδοση και την ασφάλεια.