Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Sichere Nginx-Bereitstellung: Beginnen Sie mit der Serverkonfiguration

Sichere Nginx-Bereitstellung: Beginnen Sie mit der Serverkonfiguration

WBOY
WBOYOriginal
2023-06-10 08:24:141149Durchsuche

Nginx ist ein ausgezeichneter HTTP- und Reverse-Proxy-Server, der hohe Leistung, Stabilität und Skalierbarkeit bieten kann. Um die Sicherheit und Stabilität des Nginx-Servers zu gewährleisten, ist eine sichere Bereitstellung erforderlich. Dieser Artikel beginnt mit der Serverkonfiguration und stellt die Installation, Konfiguration, Optimierung und Sicherheitsbereitstellung von Nginx ausführlich vor.

  1. Serverkonfiguration

Bevor Sie Nginx installieren, müssen Sie eine Grundkonfiguration des Servers durchführen. Es wird empfohlen, das Betriebssystem Linux zu verwenden und die neuesten Systemupdates und Sicherheitspatches zu installieren. Darüber hinaus sollte der Server über ausreichend Arbeitsspeicher und Prozessorleistung verfügen, um die hohe Leistung des Nginx-Servers zu gewährleisten.

  1. Nginx installieren

Nginx kann die neueste stabile Version von der offiziellen Website https://nginx.org/en/download.html herunterladen. Verwenden Sie nach Abschluss des Downloads den folgenden Befehl zur Installation:

tar -zxvf nginx-1.18.0.tar.gz
cd nginx-1.18.0
./configure
make
sudo make install
  1. Nginx konfigurieren

Die Hauptkonfigurationsdatei von Nginx befindet sich in /etc/nginx/nginx.conf. Achten Sie bei Änderungen darauf, die Originaldateien zu sichern. Das Folgende ist ein Beispiel für eine Standard-Nginx-Konfigurationsdatei:

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

events {
    worker_connections 1024;
}

http {
    include /etc/nginx/mime.types;
    default_type application/octet-stream;
    log_format main '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log /var/log/nginx/access.log main;
    sendfile on;
    # ...
    server {
        listen 80 default_server;
        listen [::]:80 default_server;
        root /usr/share/nginx/html;
        index index.html;
        server_name _;
        location / {
            try_files $uri $uri/ =404;
        }
        # ...
    }
}

Diese Datei enthält die Benutzer- und Arbeitsprozesskonfiguration, das Protokollformat, den Speicherort des Zugriffsprotokolls, die Dateiübertragungskonfiguration und einen Standard-HTTP-Serverblock. Die Listen-Direktive definiert den Port, den der Serverblock abhören soll. Port 80 ist in diesem Beispiel als Standard-Server-Port definiert. Wenn der Benutzer über die IP-Adresse im Browser zugreift, greift Nginx auf die Standarddatei auf dem Server zu und gibt sie an den Client zurück.

  1. Nginx-Konfiguration optimieren

Die Nginx-Leistung hängt von vielen Faktoren ab, einschließlich der Serverkonfiguration und der Netzwerkumgebung. Um die Leistung von Nginx zu optimieren, können Sie Folgendes tun:

  • Aktivieren Sie die Caching-Funktion von Nginx. Dadurch werden die Reaktionszeiten für Anfragen nach statischen Dateien wie CSS-Dateien, JavaScript-Dateien und Bilddateien beschleunigt. Am Beispiel des standardmäßigen HTTP-Caching-Mechanismus finden Sie hier eine Beispielkonfiguration:
http {
    proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=my_cache:10m inactive=60m;
    server {
        location ~* .(png|jpg|jpeg|gif|ico)$ {
            proxy_cache my_cache;
            proxy_pass http://backend;
        }
    }
}
  • Verbesserung der Leistung durch Erhöhung der Anzahl der Worker_Prozesse. Die Anzahl der worker_processes sollte der Anzahl der auf dem Server verfügbaren CPU-Kerne entsprechen. Wenn der Server beispielsweise über vier CPU-Kerne verfügt, sollte worker_process auf 4 gesetzt werden.
  • Aktivieren Sie die TCP-Nopush- und Nodelay-Funktionen. Dadurch werden Latenz und Paketverlust im TCP-Protokoll reduziert. Hier ist eine Beispielkonfiguration:
http {
    sendfile on;
    tcp_nopush on;
    tcp_nodelay on;
    # ...
}
  1. Sichere Bereitstellung

Sicherheit von Nginx ist sehr wichtig. Hier einige Vorschläge für eine sichere Bereitstellung:

  • Verwenden Sie das HTTPS-Protokoll, um Datenübertragungen zu verschlüsseln, insbesondere sensible Datenübertragungen wie Bankkontoinformationen oder Kreditkartennummern. Durch die Verwendung von Zertifikaten wird sichergestellt, dass die Datenübertragung während der Übertragung nicht manipuliert oder gestohlen wird.
  • Begrenzen Sie die Anfragerate, um Ihre Website vor DDoS-Angriffen zu schützen. Verwenden Sie beispielsweise die Nginx-Direktive limit_req_zone, um die Anforderungsrate festzulegen.
http {
    limit_req_zone $binary_remote_addr zone=my_zone:10m rate=1r/s;
    server {
        location / {
            limit_req zone=my_zone burst=5 nodelay;
            # ...
        }
    }
}
  • Begrenzen Sie die Datei-Upload-Größe, um böswillige Datei-Uploads zu verhindern. Verwenden Sie die client_max_body_size-Direktive von Nginx, um Dateigrößenbeschränkungen festzulegen.
http {
    client_max_body_size 10M;
    server {
        location /upload {
            # ...
        }
    }
}
  • Schalten Sie unnötige Dienste im System aus. Wenn Ihr Server beispielsweise keine E-Mail-Dienste benötigt, sollten Sie die E-Mail-Dienste deaktivieren, um das Risiko zu verringern.
  • Aktualisieren Sie Systeme und Software regelmäßig, um die Sicherheit zu gewährleisten. Updates sollten umgehend nach ihrer Veröffentlichung auf die Server angewendet werden.

Dieser Artikel stellt die Installation, Konfiguration, Optimierung und sichere Bereitstellung von Nginx im Detail vor. Diese Schritte können die hohe Leistung, Sicherheit und Stabilität des Nginx-Servers gewährleisten.

Das obige ist der detaillierte Inhalt vonSichere Nginx-Bereitstellung: Beginnen Sie mit der Serverkonfiguration. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn