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:
|
<<: Lernen Sie die Grundlagen der JavaScript-DOM-Operationen in einem Artikel
>>: MySql5.7.21 Installationspunkte Datensatznotizen
Nachdem die Anwendung in einen Container verpackt...
Hintergrund Durch das flexible Layout wird eine e...
Dieser Artikel stellt Jenkins+Maven+SVN+Tomcat üb...
1. Laden Sie das RPM-Paket für Linux herunter htt...
XML/HTML-CodeInhalt in die Zwischenablage kopiere...
Inhaltsverzeichnis 1. Hintergrund 2. Zusammengese...
Es gibt viele Gründe für eine langsame Abfrageges...
Spring-Integration mit SpringMVC Die web.xml-Konf...
Weiterführende Literatur: Beheben Sie das Problem...
In diesem Artikelbeispiel wird der spezifische Ja...
Dank unserer umfassenden CSS-Erfahrung als Webdesi...
Windows Server 2012 und Windows Server 2008 unter...
Innerhalb der Zeilen können die hellen Rahmenfarb...
1. <body>-Tag: Wird verwendet, um den Haupt...
Gehen Sie im Hive-Installationsverzeichnis in das...