Zusammenfassung einiger gängiger Konfigurationen und Techniken von Nginx

Zusammenfassung einiger gängiger Konfigurationen und Techniken von Nginx

Vorwort

Dieser Artikel listet mehrere gängige, praktische und interessante Konfigurationen von Nginx auf. Ich hoffe, dass Sie nach dem Lesen sagen können: Ich habe etwas gelernt!

Konfigurieren mehrerer Domänennamen für eine Site

Server {
 hören Sie 80;
 Servername ops-coffee.cn b.ops-coffee.cn;
}

Servername, gefolgt von mehreren Domänennamen, getrennt durch Leerzeichen

Ein Dienst konfiguriert mehrere Sites

Server {
 hören Sie 80;
 Servername a.ops-coffee.cn;

 Standort / {
 Wurzel /home/Projekt/pa;
 Index Index.html;
 }
}

Server {
 hören Sie 80;
 Servername ops-coffee.cn b.ops-coffee.cn;

 Standort / {
 Wurzel /home/Projekt/pb;
 Index Index.html;
 }
}

Server {
 hören Sie 80;
 Servername c.ops-coffee.cn;

 Standort / {
 Wurzel /home/Projekt/PC;
 Index Index.html;
 }
}

Basierend auf der Konfiguration des virtuellen Hosts von Nginx verfügt Nginx über drei Arten von virtuellen Hosts

IP-basiertes virtuelles Hosting: Sie müssen mehrere Adressen auf Ihrem Server haben und jede Site entspricht einer anderen Adresse. Diese Methode wird weniger verwendet.

Portbasierte virtuelle Hosts: Jede Site entspricht einem anderen Port. Verwenden Sie beim Zugriff die Methode ip:port. Sie können den Abhörport ändern, um

Domänennamenbasiertes virtuelles Hosting: Die am häufigsten verwendete Methode. Das obige Beispiel verwendet ein domänennamenbasiertes virtuelles Hosting. Voraussetzung ist, dass Sie mehrere Domänennamen für jede Site haben. Geben Sie einfach verschiedene Domänennamen in server_name ein.

nginx fügt Konto- und Passwortüberprüfung hinzu

Server {
 Standort / {
 auth_basic "Bitte geben Sie Benutzer und Passwort ein";
 auth_basic_user_file-Schlüssel/auth.key;
 }
}

Über nginx kann auf viele Dienste zugegriffen werden, es bietet jedoch keine Kontoauthentifizierungsfunktion. Sie können dazu das von nginx bereitgestellte Authbase-Konto und die Kennwortauthentifizierung verwenden. Sie können das folgende Skript verwenden, um das Kontokennwort zu generieren

# Katze pwd.pl 
#!/usr/bin/perl
streng verwenden;

mein $pw=$ARGV[0];
drucke Krypta($pw,$pw)."\n";

Anwendung:

# perl pwd.pl ops-coffee.cn
opf8BImqCAXww
# echo "admin:opf8BImqCAXww" > Schlüssel/Auth.Key

nginx öffnet die Verzeichnisspalte

Wenn Sie möchten, dass nginx als Datei-Download-Server existiert, müssen Sie die nginx-Verzeichnisliste aktivieren

Server {
 Standort herunterladen {
  Autoindex aktiviert;

  autoindex_exact_size aus;
  autoindex_localtime ein;
 }
}

autoindex_exact_size: Wenn aktiviert (Standard), wird die genaue Größe der Datei in Bytes angezeigt; wenn deaktiviert, wird die ungefähre Größe der Datei in KB, MB oder GB angezeigt

autoindex_localtime: Wenn es ausgeschaltet ist (Standard), wird die GMT-Zeit als Dateizeit angezeigt. Wenn es eingeschaltet ist, wird die Serverzeit als Dateizeit angezeigt.

Wenn Sie auf die aufgelisteten txt-Dateien zugreifen, wird der Inhalt der Datei standardmäßig im Browser angezeigt. Wenn Sie möchten, dass der Browser direkt herunterlädt, fügen Sie die folgende Konfiguration hinzu

wenn ($request_filename ~* ^.*?\.(txt|pdf|jpg|png)$) {
 add_header Content-Disposition 'Anhang';
}

Konfigurieren der Standardsite

Server {
 hören Sie 80 Standard;
}

Wenn auf einem nginx-Dienst mehrere virtuelle Hosts erstellt werden, erfolgt die Suche standardmäßig von oben nach unten. Wenn kein virtueller Host gefunden wird, wird der Inhalt des ersten virtuellen Hosts zurückgegeben. Wenn Sie eine Standardsite angeben möchten, können Sie den virtuellen Host dieser Site an die Position des ersten virtuellen Hosts in der Konfigurationsdatei setzen oder „Listen default“ auf dem virtuellen Host dieser Site konfigurieren.

Keinen Zugriff per IP zulassen

Server {
 hören Sie 80 Standard;
 Servername _;

 Rückgabe 404;
}

Möglicherweise gibt es einige nicht registrierte Domänennamen oder Domänennamen, die Sie nicht möchten, deren Serveradresse auf Ihren Server verweist. Dies hat gewisse Auswirkungen auf Ihre Site und Sie müssen den Zugriff auf IP- oder nicht konfigurierte Domänennamen verbieten. Wir verwenden die oben erwähnte Standardregel, um den gesamten Standardverkehr auf 404 umzuleiten.

Die obige Methode ist relativ grob. Natürlich können Sie auch alle nicht konfigurierten Adressen so konfigurieren, dass sie bei einem Zugriff über 301 direkt auf Ihre Website umgeleitet werden, was ebenfalls zu einem gewissen Traffic auf Ihrer Website führen kann.

Server {
 umschreiben ^/(.*)$ https://ops-coffee.cn/$1 permanent;
}

Verifizierungsdatei direkt zurückgeben

Standort = /XDFyle6tNA.txt {
 Standardtyp Text/Plain;
 Rückgabewert 200 'd6296a84657eb275c05c31b10924f6ea';
}

WeChat und andere Programme verlangen häufig, dass wir eine txt-Datei in das Projekt einfügen, um den Projektbesitz zu bestätigen. Wir können nginx auf die oben beschriebene Weise direkt ändern, ohne die Datei tatsächlich auf dem Server abzulegen.

Nginx konfiguriert Upstream-Reverse-Proxy

http {
 ...
 Upstream-Tomcats {
  Server 192.168.106.176 Gewicht = 1;
  Server 192.168.106.177 Gewicht = 1;
 }

 Server {
  Standort /ops-coffee/ { 
   Proxy-Passwort http://tomcats;

   Proxy_Set_Header Host $host;
   Proxy_Set_Header X-Real-IP $Remote_Addr;
   proxy_set_header X-Weitergeleitet-Für $proxy_add_x_forwarded_for;
   Proxy_set_header X-Weitergeleitet-Proto $scheme;
  }
 }

}

Wenn Sie nicht aufpassen, können Sie in die Falle von proxy_pass mit oder ohne Balken tappen. Hier ist eine detaillierte Beschreibung des Unterschieds zwischen proxy_pass http://tomcats und proxy_pass http://tomcats/:

Obwohl es sich nur um einen Unterschied von / handelt, sind die Ergebnisse sehr unterschiedlich. Es gibt zwei Fälle:

1. Die Zieladresse enthält keine URI (Proxy-Pass http://tomcats). Zu diesem Zeitpunkt ändert sich in der neuen Ziel-URL der entsprechende URI-Teil nicht und bleibt derselbe wie zuvor.

Standort /ops-coffee/ {
 Proxy-Passwort http://192.168.106.135:8181;
}

http://domain/ops-coffee/ --> http://192.168.106.135:8181/ops-coffee/
http://domain/ops-coffee/action/abc --> http://192.168.106.135:8181/ops-coffee/action/abc

2. Die Zieladresse enthält URI (proxy_pass http://tomcats/, / ist auch URI). In diesem Fall wird der passende URI-Teil der neuen Ziel-URL in die URI in diesem Parameter geändert.

Standort /ops-coffee/ {
 Proxy-Passwort http://192.168.106.135:8181/;
}

http://domain/ops-coffee/ --> http://192.168.106.135:8181
http://domain/ops-coffee/action/abc --> http://192.168.106.135:8181/action/abc

nginx upstream schaltet Keepalive ein

Upstream-Tomcat {
 Server ops-coffee.cn:8080;
 Keepalive 1024;
}

Server {
 Standort / {
  Proxy_http_Version 1.1;
  proxy_set_header Verbindung "";

  Proxy-Passwort http://Tomcat;
 }
}

In den meisten Fällen wird nginx in einem Projekt als Reverse-Proxy verwendet. Beispielsweise ist nginx mit Tomcat verbunden, nginx ist mit PHP verbunden usw. Zu diesem Zeitpunkt aktivieren wir Keepalive zwischen nginx und dem Backend-Dienst, um den Ressourcenverbrauch zu reduzieren, der durch die häufige Erstellung von TCP-Verbindungen verursacht wird. Die Konfiguration ist wie folgt

Keepalive: Gibt die maximale Anzahl von Verbindungen an, die jeder Nginxworker aufrechterhalten kann (1024). Standardmäßig ist es nicht festgelegt, d. h. Keepalive ist nicht wirksam, wenn Nginx als Client verwendet wird.

proxy_http_version 1.1: Für die Aktivierung von Keepalive ist die HTTP-Protokollversion HTTP 1.1 erforderlich.

proxy_set_header Connection "": Um mit dem alten Protokoll kompatibel zu sein und zu verhindern, dass Keepalive aufgrund einer Verbindungsschließung im HTTP-Header ungültig wird, ist es notwendig, die Verbindung im HTTP-Header rechtzeitig zu löschen.

404 springt automatisch zur Startseite

Server {
 Standort / {
  Fehlerseite 404 = @ops-coffee;
 }

 Standort @ops-coffee {
  umschreiben .* / permanent;
 }
}

Die 404-Seite auf der Website ist nicht sehr benutzerfreundlich. Wir können die obige Konfiguration verwenden, um automatisch zur Startseite zu springen, nachdem die 404-Seite angezeigt wurde.

Zusammenfassen

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • 18 Tipps zur Konfiguration des Nginx-Proxy-Cache, die Betreiber kennen müssen (welche kennen Sie?)
  • Tipps zum Begrenzen der Anzahl von Verbindungen in Nginx
  • Eine kurze Einführung in einige Tipps zur Optimierung von Nginx-Servern
  • Einführung in die Nginx-Rewrite-Regeln und -Verwendung sowie Fertigkeitsbeispiele
  • Implementierung des Nginx-Proxy-Ports 80 bis Port 443
  • Nginx-Weiterleitung basierend auf URL-Parametern
  • Detaillierte Erläuterung verschiedener Fehlerbehandlungen, wenn Nginx nicht gestartet werden kann
  • Zusammenfassung gängiger Nginx-Techniken und Beispiele

<<:  Lernen Sie die Grundlagen der JavaScript-DOM-Operationen in einem Artikel

>>:  MySql5.7.21 Installationspunkte Datensatznotizen

Artikel empfehlen

So steuern Sie den Anteil untergeordneter Flex-Elemente auf der Hauptachse

Hintergrund Durch das flexible Layout wird eine e...

Tutorial zur Installation von MySQL 5.6 auf CentOS 6.5

1. Laden Sie das RPM-Paket für Linux herunter htt...

So implementieren Sie Eingabe-Checkboxen zur Erweiterung der Klickreichweite

XML/HTML-CodeInhalt in die Zwischenablage kopiere...

Zusammenfassung der MySQL-Verbundindizes

Inhaltsverzeichnis 1. Hintergrund 2. Zusammengese...

Ursachen und Lösungen für langsame MySQL-Abfragen

Es gibt viele Gründe für eine langsame Abfrageges...

Installationsmethode der dekomprimierten Version von MySQL 5.7.18 unter Win7x64

Weiterführende Literatur: Beheben Sie das Problem...

JavaScript realisiert den Effekt der mobilen Modalbox

In diesem Artikelbeispiel wird der spezifische Ja...

Teilen Sie 5 hilfreiche CSS-Selektoren, um Ihr CSS-Erlebnis zu bereichern

Dank unserer umfassenden CSS-Erfahrung als Webdesi...

Der gesamte Prozess der Konfiguration von Hive-Metadaten für MySQL

Gehen Sie im Hive-Installationsverzeichnis in das...