Hintergrund Kürzlich stieß ich bei der Bereitstellung mehrerer Projekte auf ein solches Problem: Wie kann ich mit einem Domänennamen auf mehrere Projekte zugreifen? Da ich das Domänenzertifikat und die Domänennamenkonfiguration nicht selbst beantragen wollte, habe ich mir diese Lösung ausgedacht, sie mit der Standortfunktion von Nginx kombiniert, um meine Anforderungen zu erfüllen, und sie dann aufgezeichnet. Das Beispiel verwendet zur Demonstration ein PHP-Projekt und andere Sprachen können auf ähnliche Weise eingesetzt werden. Beispielsweise können Sie für ein Knotenprojekt eine Überprüfung vor Ort durchführen und diese dann mit dem Reverse-Proxy-Modul porxy_pass implementieren. Einführung in das Standortabgleichmodul 1. Die Präfixanweisung "=" stimmt überein. Wenn die Übereinstimmung erfolgreich ist, werden andere Übereinstimmungen gestoppt. 2. Gewöhnlicher Abgleich von Zeichenfolgenanweisungen. Die Reihenfolge ist von lang nach kurz. Wenn die erfolgreich übereinstimmende Position ^~ verwendet, werden andere Abgleiche beendet (normaler Abgleich). 3. Anweisungen für reguläre Ausdrücke werden in der Reihenfolge in der Konfigurationsdatei abgeglichen, und andere Übereinstimmungen werden gestoppt, wenn sie erfolgreich sind. 4. Wenn im dritten Schritt eine Übereinstimmung vorliegt, verwenden Sie das Ergebnis, andernfalls verwenden Sie das Ergebnis des zweiten Schritts. Notiz 1. Die Übereinstimmungsreihenfolge besteht darin, zuerst mit der normalen Zeichenfolge und dann mit dem regulären Ausdruck übereinzustimmen. Darüber hinaus erfolgt die Reihenfolge der Übereinstimmung gemeinsamer Zeichenfolgen von lang nach kurz entsprechend der Länge der Zeichen in der Konfiguration. Das heißt, die Reihenfolge der mit gemeinsamen Zeichenfolgen konfigurierten Standorte ist irrelevant. Am Ende führt nginx die Übereinstimmung entsprechend der Länge der Konfiguration aus. Es ist jedoch zu beachten, dass reguläre Ausdrücke in der Reihenfolge in der Konfigurationsdatei getestet werden. Die Suche wird beendet, wenn die erste Übereinstimmung mit dem regulären Ausdruck gefunden wurde. 2. Im Allgemeinen wird nach erfolgreichem Abgleich des Speicherorts der normalen Zeichenfolge auch der Speicherort des regulären Ausdrucks abgeglichen. Es gibt zwei Möglichkeiten, dieses Verhalten zu ändern. Eine besteht darin, das Präfix "=" zu verwenden, das eine strikte Übereinstimmung durchführt und andere Übereinstimmungen sofort nach einer erfolgreichen Übereinstimmung stoppt, während die Anforderung verarbeitet wird. Die andere besteht darin, das Präfix "^~" zu verwenden. Wenn dieses Präfix für eine reguläre Zeichenfolge verwendet wird, weist es nginx an, den regulären Ausdruck nicht zu testen, wenn der Pfad übereinstimmt. Standort = /uri = zeigt eine genaue Übereinstimmung an. Nur eine vollständige Übereinstimmung wird wirksam. Standort ^~ /uri ^~ beginnt mit einer Präfixübereinstimmung im URL-Pfad und steht vor dem regulären Ausdruck. Ort ~ Muster ~ beginnt mit einem regulären Ausdruck unter Beachtung der Groß- und Kleinschreibung. Standort ~* Muster ~* beginnt mit einem regulären Ausdruck ohne Berücksichtigung der Groß-/Kleinschreibung. Standort /URI Ohne Modifikatoren bedeutet es auch Präfixübereinstimmung, jedoch nach der Übereinstimmung mit regulären Ausdrücken. Standort / Universelle Übereinstimmung, jede Anfrage, die nicht mit anderen Standorten übereinstimmt, wird abgeglichen, was der Standardeinstellung im Switch entspricht. Konfigurationsbeispiel Server { hören Sie 80; Servername test.com; index.html index.htm index.php; Zeichensatz koi8-r; Zugriffsprotokoll /var/log/nginx/host.access.log Haupt; #Domänenname + Projekt 1 Name Standort ^~ /a1/ { Alias /usr/share/nginx/html/a1/public/; } #Domänenname + Projekt 2 Name Standort ^~ /a2/ { Alias /usr/share/nginx/html/a2/public/; } Fehlerseite 404 /404.html; # Server-Fehlerseiten auf die statische Seite /50x.html umleiten Fehlerseite 500 502 503 504 /50x.html; Standort = /50x.html { root /usr/share/nginx/html/500.html; } #übergeben Sie die PHP-Skripte an den FastCGI-Server, der auf 127.0.0.1:9000 lauscht Standort ~ \.php$ { Stamm-HTML; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; fastcgi_params einschließen; } Standort ~ /\.ht { alles leugnen; } } Effektvorschau 1. Besuchen Sie a1 project 2. Besuchen Sie a2 Project 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:
|
<<: Diese Dinge wissen Sie vielleicht nicht über die automatische ID-Inkrementierung in MySQL
>>: Zusammenfassung der drei Lazy-Load-Methoden lazyLoad mit nativem JS
Verwenden Sie js, um den Lichtschalter zu Ihrer R...
Lernen wir verschiedene Arten von Schleifen kenne...
1. OpenJDK anzeigen rpm -qa|grep jdk 2. Löschen S...
Vorwort Das Projekt stellt Anforderungen an Karte...
Es gibt drei Typen von regulären Matching-Selekto...
Inhaltsverzeichnis 1. Requisiten Übergeordnetes E...
Hintergrund Als ich vor einigen Tagen Paging in M...
Wenn Sie Eingabe und Bild in dieselbe Zeile setzen...
Inhaltsverzeichnis 1. Was ist Pinia? 2. Pinia ist...
Inhaltsverzeichnis Vorwort Requisiten Kontext Zus...
Inhaltsverzeichnis 1. Warum ist JavaScript Single...
Inhaltsverzeichnis getApp() Definieren Sie Variab...
Inhaltsverzeichnis 1. Anweisungen 2. Modifikatore...
Aus Langeweile habe ich ein paar einfache Übungen...
Dieser Artikel verwendet Javascript + CSS, um den...