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

Wie konfiguriere ich Nginx für die Bereitstellung statischer Dateien für Node.js?

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

Beschleunigen Node.js, Socket.io Ladezeit der Webanwendung durch Nutzung von Nginx zur Bereitstellung statischer Dateien

Node.js ist eine hervorragende JavaScript-Laufzeitumgebung, mit der Sie ganze Webressourcen bereitstellen können (statisch + dynamisch) davon.

Wenn Sie an einem kleinen, experimentellen Projekt arbeiten, ist es wahrscheinlich in Ordnung. Wenn es jedoch um die Antwortzeit geht, müssen Sie die Verwendung eines Webservers wie in Betracht ziehen Nginx vor Node.js. statische Dateien zu liefern.

Eigentlich nicht nur um statische Dateien zu bedienen, sondern auch von a Sicherheit Sicht Sie sollten Nginx in Betracht ziehen.

In letzter Zeit habe ich daran gearbeitet Geekflare-Tools (Website SEO & Security Analyzer), wo ich Node.js, Socket.io verwendet habe und konnte zu unterstützen, signifikant Ansprechzeit durch Auslagern statischer Dateien von Nginx.

aws-lb

Wie Sie sehen, habe ich die statischen Dateien am 29. auf Nginx verschobenthReaktionszeit ist drastisch verringert.

Wenn Sie also Node.js verwenden, um ein Bild, js, CSS, eine Schriftart usw. zu liefern, denken Sie darüber nach und überlegen Sie, die Aufgaben zu trennen.

Werfen wir einen Blick darauf, wie ich das gemacht habe.

Dies setzt voraus, dass Sie haben Nginx und Node.js Eingerichtet. Erstellen Sie eine Sicherungskopie der vorhandenen Konfiguration, bevor Sie sie ändern, damit Sie ein Rollback durchführen können, wenn Probleme auftreten.

  • Wechseln Sie zu dem Speicherort, an dem Nginx installiert ist (unter UNIX-basierten Betriebssystemen wie CentOS / Ubuntu ist standardmäßig / etc / nginx).
  • Gehen Sie zu den verfügbaren Websites
  • Erstellen Sie eine neue Datei mit den folgenden Angaben (zum besseren Verständnis können Sie die Datei als Ihren Domainnamen benennen).
upstream backend {
server localhost:3000;
}

server {
listen 80;
server_name siterelic.com;

root /var/tools/public;

location / {
try_files $uri @backend;
}

location @backend {
proxy_pass http://backend;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
# Following is necessary for Websocket support
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
}

Es gibt die fünf entscheidenden Blöcke oben, lassen Sie mich eins nach dem anderen durchgehen.

  • Upstream - Geben Sie die Variable als "Backend" an und geben Sie die Server- und Portinformationen von node.js an. In einem Beispiel habe ich localhost: 3000 angegeben, was bedeutet, dass ich node.js auf demselben Server wie Nginx mit 3000 Portnummern ausführe.
  • Server - Geben Sie die Portnummer an, die Nginx abhören soll, und den Servernamen als Domainnamen.
  • Root - das Verzeichnis, aus dem Sie die statischen Dateien bereitstellen möchten.
  • Lage - das ist wichtig. Ich fordere Nginx auf, nach Dateien im angegebenen Verzeichnis mit dem Stammverzeichnis zu suchen. Wenn diese nicht übereinstimmen, gehen Sie zu @backend (node.js)
  • Location @ backend - Dies ist eine generische Proxy-Konfiguration für node.js + websocket.io

Aktivieren Sie die Site in /etc/nginx/sites-enabled durch die Schaffung einer symbolischen

cd /etc/nginx/sites-enabled
ln -s /etc/nginx/sites-available/$yourdomainname .

Starten Sie den Nginx neu und haben Sie Spaß!

Mit der obigen Konfiguration konnte ich mich verbessern Reaktionszeit deutlichund ich hoffe du solltest es auch.

Wenn Sie Nginx noch nicht kennen, möchten Sie vielleicht lernen, wie man eine erstellt Hochleistungs-Nginx-Server von Grund auf neu.

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