Konfigurieren von Nginx für Leistung und Sicherheit

In diesem Tutorial sehen wir uns an, 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 hier ü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.

Bedarf

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 den Befehl sudo ausführen oder ausführen.

Grundlegendes zur Nginx-Konfigurationsstruktur

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 eine Reihe von Abschnitten gruppiert sind, z. B. den Ereignisabschnitt, den http-Abschnitt, den Mail-Abschnitt usw..

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

Hauptkontext

Dieser Abschnitt oder Kontext enthält Anweisungen außerhalb bestimmter Abschnitte, z. B. des Mail-Abschnitts.

Alle anderen Anweisungen wie Benutzer nginx; , Worker_processes 1; , Error_log /var/log/nginx/error.log warn; und pid /var/run/nginx.pid können im Hauptabschnitt oder Kontext platziert werden.

Einige dieser Anweisungen, wie z. B. die worker_processes, können jedoch auch im Ereignisabschnitt vorhanden sein.

Abschnitte

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

Beispielsweise definiert der Abschnitt http die Konfiguration für das Modul ngx_http_core, der Abschnitt event definiert die Konfiguration für das Modul ngx_event_module, während der Abschnitt mail die Konfiguration für das Modul ngx_mail_module definiert.

Du kannst nachschauen 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:

Der worker_processes ist ein Variablenname, während das Auto als Argument dient.

worker_processes auto;

Anweisungen 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.

Optimieren von Nginx auf Leistung

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
  • Auszeit

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 Datei nginx.conf.

Wir werden diese Datei verwenden, um Nginx zu konfigurieren

Führen Sie nun die folgenden Befehle aus, um zum Ordner conf zu navigieren und die Datei nginx.conf mit dem vim-Editor zu öffnen

cd conf
sudo vim nginx.conf

Unten sehen Sie einen Screenshot davon, wie die Datei nginx.conf standardmäßig aussieht.

Arbeitskräfte

Damit Nginx eine bessere Leistung erzielen kann, müssen die Worker im Abschnitt “Ereignisse” konfiguriert werden. 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 die i-Taste auf der Tastatur, um die Datei nginx.conf zu bearbeiten.

Kopieren Sie Folgendes und fügen Sie es wie folgt in den Ereignisbereich ein:

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

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

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

worker_rlimit_nofile: Diese Direktive hängt irgendwie mit worker_connections zusammen. Um große gleichzeitige Verbindungen zu verarbeiten, setzen wir einen großen Wert.

multi_accept: Mit dieser Anweisung kann ein Mitarbeiter mehrere Verbindungen in der Warteschlange gleichzeitig 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 der accept_mutex aktiviert ist, wird einem Worker für einen durch accept_mutex_delay angegebenen Zeitraum eine Mutex-Sperre zugewiesen. 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 epoll zu setzen, da wir an einer Ubuntu-Plattform arbeiten. Die Epoll-Methode ist die effektivste Verarbeitungsmethode für Linux-Plattformen.

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

Festplatten-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 Datei senden() funktionieren im Kernel, um kleine Dateien zu senden.

Sie können den http-Abschnitt, den Standortabschnitt und den Serverabschnitt für Anweisungen in diesem Bereich verwenden.

Der Standortabschnitt und der Serverabschnitt können eingebettet oder in den http-Abschnitt eingefügt werden, um die Konfiguration lesbar zu machen.

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

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

Ort / Audio / {
directio 4m
directio_alignment 512
}}

sendfile: Um Betriebssystemressourcen zu nutzen, setzen Sie den Wert dieser Anweisung auf 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 Direktive 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 Anweisung aktiviert Multithreading, wenn sie für Schreib- und Lesevorgänge aktiviert ist. 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 Direktive weist der Datenübertragung einen Blockgrößenwert zu. Es bezog sich auf die Richtlinie.

Netzwerkschicht

In diesem Abschnitt werden Anweisungen wie tcp_nodelay und tcp_nopush verwendet, 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: Da wir die Direktive tcp_nodelay aktiviert haben, werden kleine Pakete sofort gesendet. Wenn Sie jedoch weiterhin den Pufferungsalgorithmus von John Nagle verwenden möchten, können Sie tcp_nopush auch aktivieren, um sich gegenseitig Pakete hinzuzufügen und alle auf einmal zu senden.

Puffer

Schauen wir uns an, 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 2 m oder mehr festlegen. Standardmäßig ist 1 m eingestellt.

client_body_in_file_only: Wenn Sie die Direktive client_body_buffer_size mit dem Hashtag-Symbol # deaktiviert haben und diese Direktive client_body_in_file_only gesetzt ist, speichert Nginx 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 einzigen 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 1 m einstellen.

large_client_header_buffers: Mit dieser Anweisung wird die maximale Anzahl und Größe zum Lesen großer Anforderungsheader festgelegt. Sie können die maximale Anzahl und Puffergröße genau auf 4 und 8 KB einstellen.

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 verwenden wir Anweisungen wie gzip, gzip_comp_level und gzip_min_length, um Daten zu komprimieren.

Fügen Sie den folgenden Code wie unten gezeigt in den http-Abschnitt ein:

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 und 9 können Sie die Komprimierungsstufe auf 2 oder 3 einstellen.

gzip_min_length: Legen Sie die Mindestantwortlänge für die Komprimierung über das Antwortheaderfeld für die Inhaltslänge fest. 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 wird der Antworttyp text / html immer komprimiert. Sie können einen anderen Antworttyp wie Text / CSS hinzufügen, 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 1.1 verwenden.

gzip_vary: Wenn die gzip-Direktive aktiviert ist, fügt diese Direktive der Antwort das Headerfeld Vary: Accept Encoding hinzu.

gzip_disabled: Einige Browser wie Internet Explorer 6 unterstützen die gzip-Komprimierung nicht. Diese Anweisung verwendet das User-Agent-Anforderungsheaderfeld, um die Komprimierung für bestimmte Browser zu deaktivieren.

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 die Anweisung open_file_cache.

Sie können diese Anweisung im Abschnitt Server, Speicherort und http platzieren.

http {

open_file_cache max = 1.000 inaktiv = 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 Direktive enthält Sicherungsinformationen innerhalb der open_file_cache-Direktive. 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 löscht normalerweise Informationen innerhalb der open_file_cache-Direktive nach einer Zeit der Inaktivität basierend auf den 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..

Auszeit

Konfigurieren Sie das Zeitlimit mithilfe von Anweisungen wie keepalive_timeout und 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 Timeout für die Datenübertragung an den Client fest.

Sicherheitskonfiguration für 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-Injection usw. befassen.

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 Tool htpasswd (siehe Abbildung unten). Das Tool htpasswd wird vom Dienstprogramm apache2-utils bereitgestellt.

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

Mit dem folgenden Befehl können Sie bestätigen, ob Sie erfolgreich einen Benutzer und ein zufälliges Kennwort erstellt haben

cat etc / apache2 / .htpasswd

Innerhalb des Speicherortabschnitts können Sie den folgenden Code einfügen, um Benutzer zur Authentifizierung mithilfe der Anweisung auth_basic aufzufordern.

location / admin {

basic_auth "Admin-Bereich";;
auth_basic_user_file / etc / apache2 / .htpasswd;

}}

Durch Verwendung der Allow-Direktive

Zusätzlich zur Direktive basic_auth können wir die Direktive allow verwenden, um den Zugriff einzuschränken.

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 {
erlauben 192.168.34.12;
erlauben 192.168.12.34;
}}

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

In diesem Abschnitt konfigurieren wir Fehler- und Zugriffsprotokolle, um gültige und ungültige Anforderungen gezielt zu überwachen. 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 wie syslog oder 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 Abschnitt HTTP können Sie Folgendes verwenden.

http {

access_log logs / access.log kombiniert;
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 Anweisungen limit_req_zone und limit_req verwenden, um die Rate einer von Benutzern gesendeten Anforderung in Minuten zu begrenzen.

Fügen Sie den folgenden Code in den im Serverabschnitt eingebetteten Speicherortabschnitt ein.

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

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

}}

Begrenzen Sie die Anzahl der Verbindungen 

Sie können die Anweisungen limit_conn und limit_conn_zone verwenden, um die Verbindung zu bestimmten Standorten oder Bereichen zu beschränken. Der folgende Code empfängt beispielsweise 15 Verbindungen von Clients für einen bestimmten Zeitraum.

Der folgende Code geht zum Standortbereich.

limit_conn_zone $ binary_remote_addr zone = addr: 10m;

Server {

Standort / Produkte / {
limit_conn addr 10;

}}
}}

Beenden Sie langsame Verbindungen   

Sie können Timeout-Anweisungen wie client_body_timeout und client_header_timeout verwenden, um zu steuern, wie lange Nginx auf Schreibvorgänge aus dem Client-Body und dem Client-Header wartet.

Fügen Sie im Serverabschnitt Folgendes hinzu.

Server {
client_body_timeout 5s;
client_header_timeout 5s;
}}

Es wäre auch eine gute Idee, DDoS-Angriffe am Rande zu stoppen, indem Sie die hier erwähnten Cloud-basierten Lösungen nutzen.

Verzeichnisliste deaktivieren

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

Standort / {
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 eines CDN und einer Cloud-basierten Sicherheit in Betracht ziehen, um eine bessere Leistung und Sicherheit zu erzielen.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map