So erstellen Sie eine sichere VPS-Umgebung mit NGINX und PM2
So erstellen Sie eine sichere VPS-Umgebung mit NGINX und PM2
Mit der Popularität des Internets ist VPS (Virtual Private Server) zur bevorzugten Bereitstellungsumgebung für viele Websites und Anwendungen geworden. Allerdings gewinnen Sicherheitsaspekte zunehmend an Bedeutung. In diesem Artikel besprechen wir die Verwendung von NGINX und PM2 zum Aufbau einer sicheren VPS-Umgebung und stellen spezifische Codebeispiele bereit.
NGINX ist ein schneller, leistungsstarker HTTP- und Reverse-Proxy-Server, der uns dabei helfen kann, einen Lastausgleich zu erreichen und Server vor böswilligen Angriffen zu schützen. PM2 ist ein moderner Node.js-Anwendungsprozessmanager, der sicherstellen kann, dass unsere Node.js-Anwendung immer stabil auf dem Server läuft.
Im Folgenden sind die spezifischen Schritte zum Aufbau einer sicheren VPS-Umgebung aufgeführt:
- NGINX installieren
Zuerst müssen wir NGINX auf dem VPS installieren. Spezifische Installationsschritte finden Sie in der offiziellen NGINX-Dokumentation. Nachdem die Installation abgeschlossen ist, müssen wir die Sicherheitsparameter konfigurieren, indem wir die NGINX-Konfigurationsdatei bearbeiten. -
HTTPS konfigurieren
Das HTTPS-Protokoll gewährleistet eine sichere Kommunikation zwischen Websites und Anwendungen. Wir können HTTPS mit kostenlosen Let's Encrypt-Zertifikaten implementieren. Zuerst müssen wir das Certbot-Tool installieren und darüber Zertifikate beantragen und erneuern.sudo apt-get install certbot sudo certbot certonly --nginx
Dieser Befehl konfiguriert das Zertifikat automatisch mithilfe des NGINX-Plugins.
Konfigurieren eines Reverse-Proxys
Reverse-Proxys können zusätzliche Sicherheits- und Leistungsvorteile bieten. Wir können NGINX als Reverse-Proxy-Server verwenden, um Anfragen an die Node.js-Anwendung weiterzuleiten, die auf PM2 ausgeführt wird. Hier ist eine Beispiel-NGINX-Konfigurationsdatei:server { listen 80; server_name example.com; location / { proxy_pass http://localhost:3000; # 此处的3000是Node.js应用程序的端口 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection 'upgrade'; proxy_set_header Host $host; proxy_cache_bypass $http_upgrade; } }
Diese Konfigurationsdatei leitet alle Anfragen von example.com an die Node.js-Anwendung weiter, die auf localhost ausgeführt wird.
Firewall konfigurieren
Firewalls sind ein wichtiger Bestandteil beim Schutz Ihres Servers vor böswilligen Angriffen. Wir können UFW (Uncomplicated Firewall) verwenden, um Firewall-Regeln zu konfigurieren.sudo ufw allow OpenSSH # 允许SSH访问 sudo ufw allow 'Nginx HTTP' # 允许HTTP访问 sudo ufw enable # 启用防火墙
Mit den oben genannten Befehlen können wir SSH- und HTTP-Zugriff zulassen und der Firewall ermöglichen, andere fehlerhafte Verbindungen zu filtern und zu blockieren.
Verwenden Sie PM2 zum Verwalten von Node.js-Anwendungen
PM2 kann sicherstellen, dass unsere Node.js-Anwendungen immer stabil auf dem Server laufen und die Anwendungen automatisch starten und überwachen. Hier sind die Beispielbefehle zum Verwalten Ihrer Anwendung mit PM2:pm2 start app.js --name myapp # 启动应用程序 pm2 list # 查看当前运行的应用程序 pm2 restart myapp # 重启应用程序
PM2 bietet viele weitere Befehle und Funktionen, die je nach Bedarf geändert und angepasst werden können.
Durch die oben genannten Schritte können wir NGINX und PM2 verwenden, um eine sichere VPS-Umgebung aufzubauen. Dies ist natürlich nur ein grundlegendes Konfigurationsbeispiel. Sie können es entsprechend Ihren spezifischen Anforderungen ändern und verbessern. Bitte lesen Sie die entsprechende Dokumentation sorgfältig durch und befolgen Sie bei der Verwendung die besten Sicherheitspraktiken.
Das obige ist der detaillierte Inhalt vonSo erstellen Sie eine sichere VPS-Umgebung mit NGINX und PM2. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undress AI Tool
Ausziehbilder kostenlos

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Stock Market GPT
KI-gestützte Anlageforschung für intelligentere Entscheidungen

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen



Als API -Gateway hat NginX die Vorteile von hoher Leistung, geringer Latenz, Lastausgleich und Sicherheitskontrolle. 1. Übernehmen Sie eine ereignisgesteuerte Architektur, unterstützt hohe Parallelitäts- und geringe Ressourcenverbrauch und verbessert die API-Reaktionsgeschwindigkeit. 2. unterstützt mehrere Lastausgleichsstrategien und Gesundheitsprüfungen, um eine hohe Verfügbarkeit von Dienstleistungen zu gewährleisten. 3. kann URLs anhand von Regeln wie Pfaden und Domain -Namen weiterleiten und neu schreiben, um die API -Versionsverwaltung zu erleichtern. V. 5. Support Response Caching, reduziert den Back-End-Druck und verbessert die lessintensive API-Leistung. 6. Passen Sie die Protokollformate an, um die Integration in Überwachungssysteme wie Elche und Grafana zu erleichtern. 7. Unterstützt HTTP/2, HTTP/3 und WebSocket.

Das GGINX -GEO -Modul wird verwendet, um Variablen basierend auf der Client -IP -Adresse zu erstellen. 1. Die Zuordnung des IP -Bereichs und der variablen Werte kann über die GEO -Anweisungen im HTTP -Block definiert werden, z. 2. Wenn Geolokalisierung auf nationaler Ebene erforderlich ist, unterstützt das native GEO-Modul keine direkte Abfrage der GEOIP-Datenbank und hängt vom Drittanbietermodul NGX_HTTP_GEOIP2_MODUL ab. Native GEO gilt nur für die manuelle Konfiguration des CIDRIP -Segments (wie das russische IP im Beispiel), aber die Wartung ist schwierig und für die Verwendung in Produktionsumgebungen nicht empfohlen. 3. Die Best Practice ist es, Kartenanweisungen zu kombinieren, um die Flexibilität zu verbessern, z. B. das Festlegen von GEO zuerst.

Diski/ooverheadisthemainperformanceConcern, ashighrequestvolumsincreaseWriteoperationen, potenziellbottlenckingsloworoveredDisks;

DefinearatelimitzoneIngimit_Req_zoneinThttpblockWithakeylike $ BINARY_REMOTE_ADDR, AzonenAmeAndsize, Andarate (z. B. Rate = 10R/ s); 2.ApplythelimitusingLimit_ReqinThedEredLocationBlock, optional settingBurStandNodelaytomanagetemporarytrafficSpikes; 3.OP

NginxuSaMaster-ArbeiterarchitectureForHighperformanceAndStability; themastrocessManAgheServerByReadingConfigurations, BindingPorts, Anbieter und Handlingsignals, während ArbeiterprozessschandleClientRequestSindependententententanvent-driden, nonbloen, nonblo

NginxdoesNotnativsupportalenvironmentvariableInitsConfigurationFiles, ButyoucanworkaroundThislimitutSuveralMethods: 1.UstheenvdirectivetopassSpecificenvironmentvariablestoworkerProceses thisdocalalowdirectusefvariablesInendirektive

Die Bereitstellung von Django -Anwendungen erfordert eine Konfiguration der Produktionsumgebung, Gunicorn und Nginx Reverse Proxy. 1. Setzen Sie Debug = false, konfigurieren Sie erlaubte_hosts, definieren Sie static_root und run scollectStatic, um statische Dateien zu sammeln. 2. Installieren Sie Gunicorn und testen Sie und führen Sie es aus. Nachdem bestätigt wurde, dass es korrekt ist, verwalten Sie den Dienst über systemd. 3. Erstellen Sie die Systemd -Dienstdatei. Konfigurieren Sie Gunicorn so, dass sie mit UNIX -Sockets beginnen, den richtigen Pfad festlegen und den Dienst nach dem Benutzer aktivieren. 4. Installieren Sie Nginx und erstellen

UseHttpBasicauthenticationWithTpasswdtopassword-Protektlokationen; 2.RestrictByipuselow/Denyrulen; 3.CombineBothWithSatiFyallfordualVerification; 4.BLOCKSITIONSITISCHFILEVIAREGEXordirectoryNies; 5. UseGeGeo/MapModulesForcuntry-basierte REARExordirectoryDeies; 5. Usegeo/mapmodulesForCountry-basierte REFICERICTIONS;
