Geekflare wird von unserem Publikum unterstützt. Wir können Affiliate-Provisionen durch den Kauf von Links auf dieser Website verdienen.
Teilen:

Konfigurieren von Nginx für Leistung und Sicherheit

Konfiguration der Nginx-Produktion
Invicti Web Application Security Scanner – die einzige Lösung, die eine automatische Verifizierung von Schwachstellen mit Proof-Based Scanning™ bietet.

In diesem Tutorial werden wir uns ansehen, wie wir den Nginx-Webserver für eine Produktionsumgebung konfigurieren können.

Ein Webserver in einer Produktionsumgebung unterscheidet sich von einem Webserver in einer Testumgebung in Bezug auf Leistung, Sicherheit usw.

Standardmäßig gibt es immer eine gebrauchsfertige Konfigurationseinstellung für einen Nginx-Webserver, sobald Sie ihn erfolgreich installiert haben. Die Standardkonfiguration ist jedoch für eine Produktionsumgebung nicht gut genug. Daher konzentrieren wir uns darauf, wie Sie Nginx so konfigurieren, dass es bei starkem und normalem Datenverkehr besser funktioniert, und wie Sie es vor Benutzern schützen, die es missbrauchen möchten.

Wenn Sie Nginx nicht auf Ihrem Computer installiert haben, können Sie überprüfen, wie dies funktioniert . Es zeigt Ihnen, wie Sie Nginx auf einer Unix-Plattform installieren. Wählen Sie die Installation von Nginx über die Quelldateien, da das vorgefertigte Nginx einige der in diesem Lernprogramm verwendeten Module nicht enthält.

Anforderungen

Sie müssen Folgendes auf Ihrem Computer installiert haben und sicherstellen, dass Sie dieses Tutorial auf jeder Debian-basierten Plattform wie Ubuntu ausführen.

  • Ubuntu oder eine andere Debian-basierte Plattform
  • wget
  • Vim (Texteditor)

Außerdem müssen Sie einige Befehle in diesem Lernprogramm als Root-Benutzer über das ausführen oder ausführen sudo Befehl.

Understanding Nginx Config Structure

In diesem Abschnitt werden wir uns Folgendes ansehen:

  • Struktur von Nginx
  • Abschnitte wie ein Ereignis, HTTP und E-Mail
  • Gültige Syntax von Nginx

Am Ende dieses Abschnitts werden Sie die Struktur der Nginx-Konfiguration, den Zweck oder die Rollen von Abschnitten sowie das Definieren gültiger Anweisungen in Abschnitten verstehen.

Die vollständige Nginx-Konfigurationsdatei hat eine logische Struktur, die aus Anweisungen besteht, die in einer Reihe von Abschnitten wie z event section, http sectionmail section und so weiter.

Die primäre Konfigurationsdatei befindet sich unter  /etc/nginx/nginx.conf  während sich andere Konfigurationsdateien unter befinden  /etc/nginx.

Hauptkontext

Dieser Abschnitt oder Kontext enthält Anweisungen außerhalb bestimmter Abschnitte wie z mail section.

Alle anderen Richtlinien wie user  nginx; worker_processes  1; ,   error_log  /var/log/nginx/error.log warn;  funktioniert  pid  /var/run/nginx.pid kann innerhalb des Hauptabschnitts oder Kontextes platziert werden.

Aber einige dieser Richtlinien wie die worker_processes kann auch in der existieren event section.

Abschnitte

Abschnitte in Nginx definieren die Konfiguration für Nginx-Module.

Zum Beispiel kann die http section  definiert die Konfiguration für die ngx_http_core module, das event section definiert die Konfiguration für die  ngx_event_module während der Mail-Bereich die Konfiguration für die definiert ngx_mail_module.

Sie können prüfen, hier für eine vollständige Liste der Abschnitte in Nginx.

Richtlinien

Anweisungen in Nginx bestehen aus einem Variablennamen und einer Reihe von Argumenten wie den folgenden:

Das worker_processes ist ein Variablenname, während die auto dient als Argument.

worker_processes  auto;

Direktiven enden wie oben gezeigt mit einem Semikolon.

Schließlich muss die Nginx-Konfigurationsdatei einem bestimmten Regelwerk entsprechen. Folgendes ist die gültige Syntax der Nginx-Konfiguration:

  • Gültige Anweisungen beginnen mit einem Variablennamen, gefolgt von einem oder mehreren Argumenten
  • Alle gültigen Anweisungen enden mit einem Semikolon  ;
  • Abschnitte werden mit geschweiften Klammern definiert  {}
  • Ein Abschnitt kann in einen anderen Abschnitt eingebettet werden
  • Die Konfiguration außerhalb eines Abschnitts ist Teil der globalen Nginx-Konfiguration.
  • Die Zeilen, die mit dem Hash-Zeichen beginnen # sind Kommentare.

Tuning Nginx for Performance

In diesem Abschnitt konfigurieren wir Nginx so, dass es bei starkem Verkehr und Verkehrsspitzen eine bessere Leistung erzielt.

Wir werden uns ansehen, wie man konfiguriert:

  • Arbeitskräfte
  • Festplatten-E / A-Aktivität
  • Netzwerkaktivität
  • Puffer
  • Kompression
  • Caching
  • Timeout

Geben Sie in der aktivierten virtuellen Umgebung die folgenden Befehle ein, um in das Nginx-Verzeichnis zu wechseln und dessen Inhalt aufzulisten.

cd nginx && ls

Suchen Sie nach dem Ordner conf. In diesem Ordner befindet sich die nginx.conf Datei.

Wir werden diese Datei verwenden, um Nginx zu konfigurieren

Führen Sie nun die folgenden Befehle aus, um zum zu navigieren conf Ordner und öffnen Sie die Datei nginx.conf mit dem <a href="https://geekflare.com/best-vim-editors/">vim editor</a>

cd conf
sudo vim nginx.conf

Unten ist ein Screenshot davon, wie die nginx.conf Datei sieht standardmäßig aus.

Arbeitskräfte

Damit Nginx eine bessere Leistung erzielen kann, müssen wir konfigurieren workers im Veranstaltungsbereich. Durch die Konfiguration von Nginx-Workern können Sie Verbindungen von Clients effektiv verarbeiten.

Angenommen, Sie haben den VIM-Editor nicht geschlossen, drücken Sie auf i Taste auf der Tastatur zum Bearbeiten der nginx.conf Datei.

Kopieren Sie Folgendes und fügen Sie es in das Feld ein events section wie unten dargestellt:

events { 
    worker_processes    auto;
    worker_connections  1024;
    worker_rlimit_nofile 20960;
    multi_accept        on;  
    mutex_accept        on; 
    mutex_accept_delay  500ms; 
    use                 epoll; 
    epoll_events        512;  
}

worker_processes: Diese Richtlinie regelt die Anzahl der Arbeitnehmer in Nginx. Der Wert dieser Direktive wird auf gesetzt auto Damit Nginx die Anzahl der verfügbaren Kerne, die Festplatten, die Serverlast und das Netzwerksubsystem bestimmen kann. Sie können die Anzahl der Kerne jedoch ermitteln, indem Sie den Befehl ausführen lscpu auf dem Terminal.

worker_connections: Diese Anweisung legt den Wert der Anzahl der gleichzeitigen Verbindungen fest, die von einem Worker geöffnet werden können. Der Standardwert ist 512 aber wir setzen es auf 1,024 damit ein Mitarbeiter eine viel gleichzeitige Verbindung von einem Client akzeptieren kann.

worker_rlimit_nofile: Diese Richtlinie ist irgendwie verwandt mit worker_connections. Um große gleichzeitige Verbindungen verarbeiten zu können, setzen wir einen großen Wert.

multi_accept:  Diese Anweisung ermöglicht es einem Mitarbeiter, viele Verbindungen gleichzeitig in der Warteschlange zu akzeptieren. Eine Warteschlange bedeutet in diesem Zusammenhang einfach eine Folge von Datenobjekten, die darauf warten, verarbeitet zu werden.

mutex_accept: Diese Anweisung ist standardmäßig deaktiviert. Da wir jedoch viele Worker in Nginx konfiguriert haben, müssen wir es wie im obigen Code gezeigt aktivieren, damit Worker nacheinander neue Verbindungen akzeptieren können.

mutex_accept_delay:  Diese Anweisung legt fest, wie lange ein Mitarbeiter warten soll, bevor er eine neue Verbindung akzeptiert. Sobald die accept_mutex aktiviert ist, wird einem Worker eine Mutex-Sperre für einen von der accept_mutex_delay . Wenn der Zeitrahmen abgelaufen ist, ist der nächste Mitarbeiter in der Schlange bereit, neue Verbindungen zu akzeptieren.

use: Diese Anweisung gibt die Methode zum Verarbeiten einer Verbindung vom Client an. In diesem Tutorial haben wir beschlossen, den Wert auf zu setzen epoll weil wir an einem arbeiten Ubuntu Plattform. Das epoll Methode ist die effektivste Verarbeitungsmethode für Linux-Plattformen.

epoll_events:  Der Wert dieser Anweisung gibt die Anzahl der Ereignisse an, die Nginx an den Kernel überträgt.

Datenträger-E / A

In diesem Abschnitt konfigurieren wir die asynchrone E / A-Aktivität in Nginx, damit eine effektive Datenübertragung durchgeführt und die Cache-Effektivität verbessert werden kann.

Festplatten-E / A bezieht sich einfach auf Schreib- und Lesevorgänge zwischen der Festplatte und dem RAM. Wir werden davon Gebrauch machen <a href="https://linux.die.net/man/2/sendfile">sendfile(</a>) Funktion im Kernel, um kleine Dateien zu senden.

Sie können die verwenden http section location section funktioniert server section für Richtlinien in diesem Bereich.

Das location section, server section kann eingebettet oder in die platziert werden http section um die Konfiguration lesbar zu machen.

Kopieren Sie den folgenden Code und fügen Sie ihn in den im HTTP-Abschnitt eingebetteten Speicherortabschnitt ein.

location /pdf/  {
   sendfile on; 
   aio      on; 
  }  

location /audio/ {  
    directio    4m
    directio_alignment 512  
}

sendfile:  Setzen Sie den Wert dieser Anweisung auf, um Betriebssystemressourcen zu verwenden on. sendfile überträgt Daten zwischen Dateideskriptoren im Kernelbereich des Betriebssystems, ohne sie an die Anwendungspuffer zu senden. Diese Anweisung wird verwendet, um kleine Dateien bereitzustellen.

directio:  Diese Anweisung verbessert die Cache-Effektivität, indem Lese- und Schreibvorgänge direkt an die Anwendung gesendet werden können.  directio ist eine Dateisystemfunktion jedes modernen Betriebssystems. Diese Anweisung wird verwendet, um größere Dateien wie Videos bereitzustellen.

aio:  Diese Direktive aktiviert Multithreading, wenn diese Option aktiviert ist on für Schreib- und Lesevorgang. Multithreading ist ein Ausführungsmodell, mit dem mehrere Threads getrennt voneinander ausgeführt werden können, während ihre Hosting-Prozessressourcen gemeinsam genutzt werden.

directio_alignment:  Diese Anweisung weist der Datenübertragung einen Blockgrößenwert zu. Es bezog sich auf die directio  Richtlinie.

Netzwerkschicht

In diesem Abschnitt werden wir Richtlinien wie verwenden tcp_nodelay funktioniert tcp_nopush um zu verhindern, dass kleine Pakete auf einen bestimmten Zeitraum von etwa 200 Millisekunden warten, bevor sie sofort gesendet werden.

Wenn Pakete in "Stücken" übertragen werden, neigen sie normalerweise dazu, das hoch belastete Netzwerk zu sättigen. Also baute John Nagle eine Pufferungsalgorithmus um dieses Problem zu beheben. Der Zweck des Nagle-Pufferalgorithmus besteht darin, zu verhindern, dass kleine Pakete das hoch belastete Netzwerk sättigen.

Kopieren Sie den folgenden Code und fügen Sie ihn in den HTTP-Abschnitt ein.

http {   

  tcp_nopush  on; 
  tcp_nodelay on;

  }

tcp_nodelay: Diese Anweisung ist standardmäßig deaktiviert, damit kleine Pakete einen bestimmten Zeitraum warten können, bevor sie sofort gesendet werden. Damit alle Daten gleichzeitig gesendet werden können, ist diese Anweisung aktiviert.

tcp_nopush:   Weil wir aktiviert haben tcp_nodelay Direktive werden kleine Pakete sofort gesendet. Wenn Sie jedoch weiterhin den Pufferungsalgorithmus von John Nagle verwenden möchten, können Sie auch die Option aktivieren tcp_nopush Pakete zueinander hinzufügen und alle auf einmal senden.

Puffer

Lassen Sie uns einen Blick darauf werfen, wie Anforderungspuffer in Nginx so konfiguriert werden, dass Anforderungen effektiv verarbeitet werden. Ein Puffer ist ein temporärer Speicher, in dem Daten einige Zeit aufbewahrt und verarbeitet werden.

Sie können das Folgende im Serverabschnitt kopieren.

server { 

   client_body_buffer_size 8k;
   client_max_body_size 2m; 
   client_body_in_single_buffer on;  
   client_body_temp_pathtemp_files 1 2;
   client_header_buffer_size  1m; 
   large_client_header_buffers 4 8k;

 }

Es ist wichtig zu verstehen, was diese Pufferleitungen tun.

client_body_buffer_size:  Diese Anweisung legt die Puffergröße für den Anforderungshauptteil fest. Wenn Sie den Webserver auf 64-Bit-Systemen ausführen möchten, müssen Sie den Wert auf 16 KB festlegen. Wenn Sie den Webserver auf dem 32-Bit-System ausführen möchten, setzen Sie den Wert auf 8 KB.

client_max_body_size: Wenn Sie große Datei-Uploads verarbeiten möchten, müssen Sie diese Anweisung auf mindestens festlegen 2m oder mehr. Standardmäßig ist es auf eingestellt 1m.

client_body_in_file_only: Wenn Sie die Direktive deaktiviert haben client_body_buffer_size mit dem Hashtag-Symbol  # und diese Richtlinie client_body_in_file_only Wenn diese Option festgelegt ist, speichert Nginx die Anforderungspuffer in einer temporären Datei. Dies wird für eine Produktionsumgebung nicht empfohlen.

client_body_in_single_buffer:  Manchmal wird nicht der gesamte Anforderungshauptteil in einem Puffer gespeichert. Der Rest wird gespeichert oder in eine temporäre Datei geschrieben. Wenn Sie jedoch den gesamten Anforderungspuffer in einem einzelnen Puffer speichern oder speichern möchten, müssen Sie diese Anweisung aktivieren.

client_header_buffer_size:  Mit dieser Anweisung können Sie einen Puffer für Anforderungsheader festlegen oder zuweisen. Sie können diesen Wert auf einstellen 1m.

large_client_header_buffers: Diese Anweisung wird zum Festlegen der maximalen Anzahl und Größe zum Lesen großer Anforderungsheader verwendet. Sie können die maximale Anzahl und Puffergröße auf einstellen funktioniert 8k genau.

Kompression

Das Komprimieren der über das Netzwerk übertragenen Datenmenge ist eine weitere Möglichkeit, um sicherzustellen, dass Ihr Webserver eine bessere Leistung erbringt. In diesem Abschnitt werden wir Richtlinien wie verwenden gzip, gzip_comp_level und gzip_min_length Daten komprimieren.

Fügen Sie den folgenden Code in das Feld ein http section wie unten dargestellt:

http {  

  gzip on;
  gzip_comp_level  2;
  gzip_min_length  1000; 
  gzip_types  text/xml text/css; 
  gzip_http_version 1.1; 
  gzip_vary  on;  
  gzip_disable "MSIE [4-6] \."; 

}

gzip:  Wenn Sie die Komprimierung aktivieren möchten, setzen Sie den Wert dieser Anweisung auf on. Standardmäßig ist es deaktiviert.

gzip_comp_level:  Mit dieser Anweisung können Sie die Komprimierungsstufe festlegen. Um keine CPU-Ressourcen zu verschwenden, müssen Sie die Komprimierungsstufe nicht zu hoch einstellen. Zwischen 1 funktioniert 9können Sie die Komprimierungsstufe auf einstellen 2 or 3.

gzip_min_length:  Stellen Sie die minimale Antwortlänge für die Komprimierung über das ein content-length response header field. Sie können es auf mehr als 20 Bytes einstellen.

gzip_types: Mit dieser Anweisung können Sie den Antworttyp auswählen, den Sie komprimieren möchten. Standardmäßig der Antworttyp text/html wird immer komprimiert. Sie können einen anderen Antworttyp hinzufügen, z text/css wie im obigen Code gezeigt.

gzip_http_version:  Mit dieser Anweisung können Sie die minimale HTTP-Version einer Anforderung für eine komprimierte Antwort auswählen. Sie können den Standardwert verwenden 1.1.

gzip_vary:  Wann wird gzip Wenn die Direktive aktiviert ist, fügt diese Direktive das Header-Feld hinzu Vary:Accept Encoding  auf die Antwort.

gzip_disabled:  Einige Browser wie Internet Explorer 6 habe keine Unterstützung für gzip compression. Diese Richtlinie macht Gebrauch von User-Agent Anforderungsheaderfeld zum Deaktivieren der Komprimierung für bestimmte Browser.

Caching

Nutzen Sie die Caching-Funktionen, um zu reduzieren, wie oft dieselben Daten mehrmals geladen werden. Nginx bietet Funktionen zum Zwischenspeichern von Metadaten für statische Inhalte über open_file_cache Richtlinie.

Sie können diese Direktive in die server, location funktioniert http Abschnitt.

http {  

open_file_cache max=1,000 inactive=30s; 
open_file_cache_valid 30s; 
open_file_cache_min_uses 4; 
open_file_cache_errors on; 

 }

open_file_cache:  Diese Anweisung ist standardmäßig deaktiviert. Aktivieren Sie es, wenn Sie das Caching in Nginx implementieren möchten. Diese Direktive speichert Metadaten von Dateien und Verzeichnissen, die üblicherweise von Benutzern angefordert werden.

open_file_cache_valid: Diese Anweisung enthält Sicherungsinformationen innerhalb der open_file_cache Richtlinie. Mit dieser Anweisung können Sie einen gültigen Zeitraum festlegen, der normalerweise in Sekunden angegeben wird. Danach werden die Informationen zu Dateien und Verzeichnissen erneut überprüft.

open_file_cache_min_uses:  Nginx klärt normalerweise Informationen innerhalb der open_file_cache Richtlinie nach einer Zeit der Inaktivität auf der Grundlage der open_file_cache_min_uses. Mit dieser Anweisung können Sie eine Mindestanzahl von Zugriffen festlegen, um festzustellen, auf welche Dateien und Verzeichnisse aktiv zugegriffen wird.

open_file_cache_errors:  Sie können diese Anweisung verwenden, um Nginx das Zwischenspeichern von Fehlern wie "Berechtigung verweigert" oder "Zugriff auf diese Datei nicht möglich" zu ermöglichen, wenn auf Dateien zugegriffen wird. Jedes Mal, wenn ein Benutzer, der nicht dazu berechtigt ist, auf eine Ressource zugreift, zeigt Nginx denselben Fehlerbericht "Berechtigung verweigert" an.

Timeout

Konfigurieren Sie das Zeitlimit mithilfe von Anweisungen wie z keepalive_timeout funktioniert keepalive_requests um zu verhindern, dass lang wartende Verbindungen Ressourcen verschwenden.

Kopieren Sie im Abschnitt HTTP den folgenden Code und fügen Sie ihn ein:

http {  

 keepalive_timeout  30s; 
 keepalive_requests 30;
 send_timeout      30s;

}

keepalive_timeout: Halten Sie die Verbindungen etwa 30 Sekunden lang am Leben. Der Standardwert beträgt 75 Sekunden.

keepalive_requests: Konfigurieren Sie eine Reihe von Anforderungen, um für einen bestimmten Zeitraum am Leben zu bleiben. Sie können die Anzahl der Anforderungen auf 20 oder 30 einstellen.

keepalive_disable: Wenn Sie die Keepalive-Verbindung für eine bestimmte Gruppe von Browsern deaktivieren möchten, verwenden Sie diese Anweisung.

send_timeout: Legen Sie ein Zeitlimit für die Datenübertragung an den Client fest.

Security Configuration for Nginx

Im Folgenden wird ausschließlich darauf eingegangen, wie ein Nginx anstelle einer Webanwendung sicher konfiguriert wird. Daher werden wir uns nicht mit webbasierten Angriffen wie SQL befassen Injektion und so weiter.

In diesem Abschnitt erfahren Sie, wie Sie Folgendes konfigurieren:

  • Beschränken Sie den Zugriff auf Dateien und Verzeichnisse
  • Konfigurieren Sie Protokolle, um böswillige Aktivitäten zu überwachen
  • Verhindern Sie DDoS
  • Verzeichnisliste deaktivieren

Beschränken Sie den Zugriff auf Dateien und Verzeichnisse

Schauen wir uns an, wie Sie den Zugriff auf vertrauliche Dateien und Verzeichnisse mithilfe der folgenden Methoden einschränken können.

Durch Verwendung der HTTP-Authentifizierung

Wir können den Zugriff auf vertrauliche Dateien oder Bereiche einschränken, die nicht für die öffentliche Ansicht bestimmt sind, indem wir Benutzer oder sogar Administratoren zur Authentifizierung auffordern. Führen Sie den folgenden Befehl aus, um ein Dienstprogramm zur Erstellung von Kennwortdateien zu installieren, wenn Sie es nicht installiert haben.

apt-get install -y apache-utils

Erstellen Sie als Nächstes eine Kennwortdatei und einen Benutzer mit dem htpasswd Werkzeug wie unten gezeigt. Das htpasswd Werkzeug wird von der bereitgestellt apache2-utils Dienstprogramm.

sudo  htpasswd  -c  /etc/apache2/ .htpasswd mike

Sie können bestätigen, ob Sie erfolgreich waren einen Benutzer und ein zufälliges Passwort erstellt über den folgenden Befehl

cat  etc/apache2/ .htpasswd

Innerhalb des Speicherortabschnitts können Sie den folgenden Code einfügen, um Benutzer zur Authentifizierung mit dem Befehl aufzufordern auth_basic  Richtlinie.

location /admin {  

 basic_auth "Admin Area"; 
 auth_basic_user_file /etc/apache2/ .htpasswd; 

}

Durch Verwendung der Allow-Direktive

Neben der basic_auth Richtlinie können wir die nutzen allow Richtlinie zur Einschränkung des Zugangs.

Innerhalb des Standortabschnitts können Sie den folgenden Code verwenden, um den angegebenen IP-Adressen den Zugriff auf vertrauliche Bereiche zu ermöglichen.

location /admin {  
 allow 192.168.34.12; 
 allow 192.168.12.34; 
}

Konfigurieren Sie Protokolle, um böswillige Aktivitäten zu überwachen

In diesem Abschnitt werden wir konfigurieren error funktioniert access Protokolle zur spezifischen Überwachung gültiger und ungültiger Anforderungen. Sie können diese Protokolle untersuchen, um herauszufinden, wer sich zu einem bestimmten Zeitpunkt angemeldet hat oder welcher Benutzer auf eine bestimmte Datei zugegriffen hat usw.

error_log: Ermöglicht das Einrichten der Protokollierung für eine bestimmte Datei, z syslog or stderr. Sie können auch die Anzahl der Fehlermeldungen angeben, die Sie protokollieren möchten.

access_log:  Ermöglicht das Schreiben von Benutzeranforderungen in die Datei access.log

Im HTTP-Abschnitt können Sie Folgendes verwenden.

http {  

  access_log  logs/access.log   combined; 
  error_log   logs/warn.log     warn;

}

Verhindern Sie DDOS

Sie können den Nginx mit den folgenden Methoden vor einem DDOS-Angriff schützen:

Benutzeranforderungen einschränken 

Sie können die verwenden limit_req_zone funktioniert limit_req Anweisungen zur Begrenzung der Rate einer von Benutzern gesendeten Anfrage in Minuten.

Fügen Sie den folgenden Code in das Feld ein location Abschnitt in den Serverabschnitt eingebettet.

limit_req_zone $binary_remote_addr zone=one:10m rate=30r/m;  

server {
 location /admin.html { 
   limit_req zone=one;
       }

}

Begrenzen Sie die Anzahl der Verbindungen 

Sie können die verwenden limit_conn funktioniert limit_conn_zone Richtlinien zur Beschränkung der Verbindung zu bestimmten Orten oder Bereichen. Der folgende Code empfängt beispielsweise 15 Verbindungen von Clients für einen bestimmten Zeitraum.

Der folgende Code geht an die location Abschnitt.

limit_conn_zone $binary_remote_addr zone=addr:10m;

server {
   
    location /products/ {
        limit_conn addr 10;
       
    }
}

Beenden Sie langsame Verbindungen   

Sie können Timeout-Anweisungen wie die verwenden client_body_timeout funktioniert client_header_timeout um zu steuern, wie lange Nginx auf Schreibvorgänge von der wartet client body funktioniert client header.

Fügen Sie Folgendes in das Feld ein server Abschnitt.

server {
    client_body_timeout 5s;
    client_header_timeout 5s;
}

Es wäre auch eine gute Idee, DDoS-Angriffe am Rande zu stoppen, indem Cloud-basierte Lösungen als hier erwähnt.

Verzeichnisliste deaktivieren

Sie können die verwenden auto_index Anweisung, um eine Verzeichnisliste zu verhindern, wie im folgenden Code gezeigt. Sie müssen den Wert festlegen off um die Verzeichnisliste zu deaktivieren.

location / {  
 auto_index  off;
}

Fazit

Wir haben den Nginx-Webserver so konfiguriert, dass er eine effektive Leistung erbringt und ihn vor übermäßigem Missbrauch in einer Produktionsumgebung schützt. Wenn Sie Nginx für Webanwendungen mit Internetverbindung verwenden, sollten Sie auch die Verwendung von a in Betracht ziehen CDN funktioniert Cloud-basierte Sicherheit für bessere Leistung und Sicherheit.

Danke an unsere Sponsoren
Weitere großartige Lesungen zu Nginx
Treiben Sie Ihr Geschäft an
Einige der Tools und Dienste, die Ihr Unternehmen beim Wachstum unterstützen.
  • Invicti verwendet das Proof-Based Scanning™, um die identifizierten Schwachstellen automatisch zu verifizieren und innerhalb weniger Stunden umsetzbare Ergebnisse zu generieren.
    Versuchen Sie es mit Invicti
  • Web-Scraping, Wohn-Proxy, Proxy-Manager, Web-Unlocker, Suchmaschinen-Crawler und alles, was Sie zum Sammeln von Webdaten benötigen.
    Versuchen Sie es mit Brightdata
  • Semrush ist eine All-in-One-Lösung für digitales Marketing mit mehr als 50 Tools in den Bereichen SEO, Social Media und Content-Marketing.
    Versuchen Sie es mit Semrush
  • Intruder ist ein Online-Schwachstellenscanner, der Cyber-Sicherheitslücken in Ihrer Infrastruktur findet, um kostspielige Datenschutzverletzungen zu vermeiden.
    MIT DER INTELLIGENTEN SCHADENKALKULATION VON Intruder