Mehrere Szenarien für die Verwendung des Nginx Rewrite-Moduls

Mehrere Szenarien für die Verwendung des Nginx Rewrite-Moduls

Anwendungsszenario 1: Domänennamenbasierte Umleitung

Der alte Domänenname des Unternehmens lautet www.accp.com. Aufgrund geänderter Geschäftsanforderungen muss er durch den neuen Domänennamen www.kgc.com ersetzt werden.

1. Der alte Domainname kann nicht abgeschafft werden
2. Wechseln Sie vom alten Domänennamen zum neuen Domänennamen und behalten Sie dessen Parameter bei

Bereitstellungsumgebung

Ein Linux-Server (192.168.142.130)
Ein Testhost Windows 7

1. Installieren Sie den Nginx-Dienst

[root@localhost ~]# rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm
#Installieren Sie die offizielle Nginx-Quelle [root@localhost ~]# yum install nginx -y  
#yum installiere nginx

2. Ändern Sie die Nginx-Standardkonfigurationsdatei

[root@localhost ~]# vim /etc/nginx/conf.d/default.conf ##Ändern Sie die Standardkonfigurationsdatei des Servers {
    hören Sie 80;
    Servername www.accp.com; ##Hostnamen ändern#charset koi8-r;
    access_log /var/log/nginx/www.accp.com-access.log main; ##Protokolldienst öffnen

3. Installieren Sie den Bind Resolution Service

[root@localhost ~]# yum install bind -y

4. Ändern Sie die Hauptkonfigurationsdatei (named.conf).

[root@localhost ~]# vim /etc/named.conf 
Optionen {
                listen-on port 53 { any; }; ##Auf alle hören...
                allow-query { any; }; ##Alles zulassen

5. Ändern Sie die Zonenkonfigurationsdatei (named.rfc1912.zones).

[root@localhost ~]# vim /etc/named.rfc1912.zones ##Konfigurieren Sie die Zonenkonfigurationsdatei zone "accp.com" IN {
                Typ Master;
                Datei "accp.com.zone"; ##ACCP-Zonendaten-Konfigurationsdatei allow-update { none; };
};

6. Ändern Sie die regionale Datenkonfigurationsdatei (accp.com.zone).

[root@localhost ~]# cd /var/named/ 
[root@localhost named]# cp -p named.localhost accp.com.zone ##Vorlage kopieren [root@localhost named]# vim accp.com.zone ##Zonenkonfigurationsdatei ändern $TTL 1D
@ IN SOA @ rname.ungültig. (
                                    1D; aktualisieren
                                    1H; erneut versuchen
                                    1W; ablaufen
                                    3H ) ; Minimum
                @NEIN
                Eine 127.0.0.1
www IN A 192.168.142.130 ##Lokale Adresse [root@localhost named]# systemctl start named ##DNS-Dienst starten [root@localhost named]# systemctl stop firewalld.service ##Firewall schließen [root@localhost named]# setenforce 0
[root@localhost named]# systemctl start nginx ##Nginx-Dienst starten

7. Testen Sie die Webseite mit einer Testmaschine

8. Ändern Sie die Konfigurationsdatei und legen Sie den Domänennamensprung fest

[root@localhost named]# vim /etc/nginx/conf.d/default.conf ##Konfigurationsdateiserver ändern {
      hören Sie 80;
      Servername www.accp.com;

      #Zeichensatz koi8-r;
      Zugriffsprotokoll /var/log/nginx/www.accp.com-access.log Haupt;

      Standort / {
          if ($host = "www.accp.com"){ ##Übereinstimmung, wenn der Domänenname der alte Domänenname ist. Rewrite ^/(.*)$ http://www.kgc.com/$1 permanent; ##Dann den Sprung auf den neuen Domänennamen dauerhaft festlegen}
          root /usr/share/nginx/html;
          Index Index.html Index.htm;
      }

9. Neue Domänennamenauflösung hinzufügen

[root@localhost benannt]# vim /etc/named.rfc1912.zones 

zone "kgc.com" IN {
                Typ Master;
                Datei „kgc.com.zone“; ##ACCP-Zonendaten-Konfigurationsdatei allow-update { none; };
};

[root@localhost benannt]# cp -p /var/named/accp.com.zone /var/named/kgc.com.zone
##Kopieren Sie die regionale Datenkonfigurationsdatei als Datenkonfigurationsdatei von kgc [root@localhost named]# systemctl restart named ##Starten Sie den Auflösungsdienst neu [root@localhost named]# systemctl restart nginx ##Starten Sie den nginx-Dienst neu

10. Verwenden Sie den alten Domänennamen, um auf die Webseite zuzugreifen und sie zu überprüfen


11. Fügen Sie nach dem alten Domänennamen Parameter hinzu und prüfen Sie, ob beim Springen zum neuen Domänennamen Parameter vorhanden sind


Anwendungsszenario 2 - Zugriffsumleitung basierend auf der Client-IP

Die Business-Version des Unternehmens ist online. Alle IPs, die auf Inhalte zugreifen, zeigen eine feste Wartungsseite an. Nur Firmen-IPs können normal darauf zugreifen.

1. Ändern Sie die Nginx-Standardkonfigurationsdatei

[root@localhost ~]# cd /etc/nginx/conf.d/
[root@localhost conf.d]# vim default.conf 

Server {
    hören Sie 80;
    Servername www.accp.com;
    #Zeichensatz koi8-r;
    Zugriffsprotokoll /var/log/nginx/www.accp.com-access.log Haupt;
    #Legen Sie fest, ob die IP legal ist oder nicht. Setzen Sie $rewrite true; ##Setzen Sie die Variable auf true. #Beurteilen Sie, ob es sich um eine legale IP handelt.
    wenn ($remote_addr = "192.168.142.120"){
        setze $rewrite false; ##passt zu einer gültigen IP, setze die Variable auf false und leite die Seite normal um}
    #Beurteilen und markieren Sie illegale IPs, wenn ($rewrite = true){ ##Ungültige IPs abgleichen und zur Hauptwebseite springen. Rewrite (.+) /main.html;
    }
    #Passen Sie das Tag an, um zum Site-Speicherort zu springen = /main.html { ##Genaue Übereinstimmung mit root /usr/share/nginx/html; ##Site-Pfad}

    Standort / {
        root /usr/share/nginx/html;
        Index Index.html Index.htm;
    }

2. Erstellen Sie illegale IP-Sites und Hauptwebseiten

[root@localhost conf.d]# cd /usr/share/nginx/html/ ##Zur Site wechseln [root@localhost html]# vim main.html ##Inhalt der Webseite mit illegalem IP-Zugriff bearbeiten <h1>Dies ist eine Testwebseite</h1>
[root@localhost html]# systemctl restart nginx ##Nginx-Dienst neu starten

3. Besuchen Sie die Test-Webseite


Anwendungsszenario 3 - Weiterleitung basierend auf alten und neuen Domänennamen und Hinzufügen von Verzeichnissen

Leiten Sie alle Beiträge unter dem Domänennamen http://bbs.accp.com auf http://www.accp.com/bbs um und lassen Sie die Parameter nach der Domänennamenumleitung unverändert.

1. Ändern Sie die Nginx-Standardkonfigurationsdatei

[root@localhost ~]# cd /etc/nginx/conf.d/
[root@localhost conf.d]# vim default.conf ##Ändern Sie die Standardkonfigurationsdatei des Servers {
    hören Sie 80;
    Servername bbs.accp.com; ##Dienstnamen ändern#charset koi8-r;
    Zugriffsprotokoll /var/log/nginx/www.accp.com-access.log Haupt;
    location /post { ##Verwenden Sie den Standort, um ihn dem Post-Verzeichnis anzupassen. Umschreiben (.+) http://www.accp.com/bbs$1 permanent; ##Permanenter Umleitungssprung}

2. Ändern Sie die DNS-Zonendaten-Konfigurationsdatei (accp.com.zone).

[root@localhost conf.d]# cd /var/named/
[root@localhost named]# vim accp.com.zone ##Ändern Sie die regionale Datenkonfigurationsdatei $TTL 1D
@ IN SOA @ rname.ungültig. (
                          0; Seriennummer
                          1D; aktualisieren
                          1H; erneut versuchen
                          1W; ablaufen
                          3H ) ; Minimum
        @NEIN
        Eine 127.0.0.1
bbs IN A 192.168.142.130
[root@localhost named]# systemctl restart named ##Auflösungsdienst neu starten [root@localhost named]# systemctl restart nginx ##Nginx-Dienst neu starten [root@localhost named]# echo "nameserver 192.168.142.130" > /etc/resolv.conf 
##Geben Sie die Adresse des Auflösungsservers in die lokale Auflösungskonfigurationsdatei ein

3. Testen Sie die Webseite


Anwendungsszenario 4 - Sprung basierend auf Parameterübereinstimmung

Browserzugriff: http://www.accp.com/100-(100|200)-100.html Zur Seite http://www.accp.com springen

1. Ändern Sie die Nginx-Standardkonfigurationsdatei

[root@localhost ~]# cd /etc/nginx/conf.d/
[root@localhost conf.d]# vim default.conf 

Server {
    hören Sie 80;
    Servername www.accp.com;
    #Zeichensatz koi8-r;
    Zugriffsprotokoll /var/log/nginx/www.accp.com-access.log Haupt;
    wenn ($request_uri ~ ^/100-(100|200)-(\d+).html$){    
    ##Passt auf reguläre Ausdrücke an, die mit 100-(100|200)-einer oder mehreren Ganzzahlen beginnen und mit html rewrite (.*) enden. http://www.accp.com permanent; ##Dauerhafte Weiterleitung zur Startseite}

2. Ändern Sie die DNS-Zonendaten-Konfigurationsdatei

  [root@localhost conf.d]# vim /var/named/accp.com.zone ##Ändern Sie die regionale Datenkonfigurationsdatei www IN A 192.168.142.130  
  [root@localhost conf.d]# systemctl restart named ##Parsing-Dienst neu starten [root@localhost conf.d]# systemctl restart nginx ##Nginx-Dienst neu starten

3. Testen Sie die Webseite


Anwendungsszenario 5 - Springen basierend auf allen PHP-Dateien im Verzeichnis

Besuchen Sie http://www.accp.com/upload/1.php, um zur Homepage zu springen

1. Ändern Sie die Nginx-Standardkonfigurationsdatei

[root@localhost ~]# cd /etc/nginx/conf.d/
  [root@localhost conf.d]# vim default.conf ##Ändern Sie die Standardkonfigurationsdatei des Servers {
      hören Sie 80;
      Servername www.accp.com;
      #Zeichensatz koi8-r;
      Zugriffsprotokoll /var/log/nginx/www.accp.com-access.log Haupt;
      location ~* /upload/.*\.php$ { ##Die Übereinstimmung berücksichtigt keine Groß-/Kleinschreibung. Übereinstimmung mit null oder mehr Umschreibungen, die mit .php enden, nach dem Hochladen (.+) http://www.accp.com permanent; ##Zur Homepage springen}
  [root@localhost conf.d]# systemctl restart nginx ##Nginx-Dienst neu starten

2. Testen Sie die Webseite


Anwendungsszenario 6 - Besuchen Sie basierend auf dem häufigsten URL-Anforderungssprung eine bestimmte Seite, um zur Startseite zu springen

1. Ändern Sie die Nginx-Standardkonfigurationsdatei

[root@localhost ~]# cd /etc/nginx/conf.d/
  [root@localhost conf.d]# vim default.conf ##Nginx-Standardkonfigurationsdateiserver ändern {
      hören Sie 80;
      Servername www.accp.com;
      #Zeichensatz koi8-r;
      Zugriffsprotokoll /var/log/nginx/www.accp.com-access.log Haupt;
      location ~* ^/abc/123.html { ##Passt auf eine bestimmte Webseite. Rewrite (.+) http://www.accp.com permanent; ##Zur Startseite springen}
  [root@localhost conf.d]# systemctl restart nginx ##Nginx-Dienst neu starten

2. Testen Sie die Webseite


Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Detaillierte Erläuterung der Nginx-Rewrite-Jump-Anwendungsszenarien

<<:  Detaillierte Erklärung, wie MySQL (InnoDB) mit Deadlocks umgeht

>>:  Vue implementiert Ankerpositionierungsfunktion

Artikel empfehlen

Zwei Möglichkeiten, den 30-Sekunden-Werbecode aus dem Youku-Video zu entfernen

Ich glaube, jeder kennt dieses Gefühl: Ein Video m...

JavaScript zum Erzielen eines Zeitlupenanimationseffekts

In diesem Artikel wird der spezifische Code für J...

Verwendung und Unterschied von Js-Modulverpackungsexporten erfordern Import

Inhaltsverzeichnis 1. Commonjs-Exporte und erford...

Detaillierte Erläuterung der MySQL-Mehrtabellenabfrage

Die Zeit vergeht immer überraschend schnell, ohne...

Beispielanalyse für MySQL-Jointabelle und automatische ID-Inkrementierung

Wie schreibt man „join“? Wenn Sie „Left Join“ ver...

W3C Tutorial (15): W3C SMIL Aktivitäten

SMIL fügt Unterstützung für Timing und Mediensync...

Implementierungsmethode und Beispielcode des Tomcat-Klassenladers

Tomcat definiert intern mehrere ClassLoader, soda...

Beispiel für die Verwendung von #include-Dateien in HTML

Es gibt zwei Dateien a.htm und b.htm. Im selben Ve...

VUE + OPENLAYERS erreicht Echtzeit-Positionierungsfunktion

Inhaltsverzeichnis Vorwort 1. Etikettenstil defin...

Element-ui klickt direkt auf die Zelle in der Tabelle, um sie zu bearbeiten

Inhaltsverzeichnis Ergebnisse erzielen Implementi...

Eine kurze Erläuterung des Navigationsfensters in Iframe-Webseiten

Eine kurze Erläuterung des Navigationsfensters in...

Lösung für den MySQL-Fehlercode 1064

Wenn die Wörter in der SQL-Anweisung mit den Schl...