Detaillierte Erläuterung der Nginx-Rewrite-Jump-Anwendungsszenarien

Detaillierte Erläuterung der Nginx-Rewrite-Jump-Anwendungsszenarien

Anwendungsszenario 1: Domänennamenbasierte Umleitung

Der alte Domänenname des Unternehmens lautet www.accp.com. Aufgrund geänderter Geschäftsanforderungen muss stattdessen der neue Domänenname www.kgc.com verwendet werden. Der alte Domänenname kann nicht abgeschafft werden. Wechseln Sie vom alten Domänennamen zum neuen Domänennamen und behalten Sie dessen Parameter bei.

Experimentelle Umgebung

Linux-Server (192.168.13.144)
Testmaschine win7

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
##Warnung zur offiziellen Nginx-Quelle installieren: /var/tmp/rpm-tmp.vS0k20: Header V4 RSA/SHA1-Signatur, Schlüssel-ID 7bd9bf62: NOKEY
Vorbereitung... ####################################### [100%]
Aktualisieren/Installieren …
   1:nginx-release-centos-7-0.el7.ngx ######################################## [100%]
[root@localhost ~]# yum install nginx -y ##yum install 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; }; ##Alles abhören listen-on-v6 port 53 { ::1; };
                Verzeichnis "/var/named";
                Dump-Datei "/var/named/data/cache_dump.db";
                Statistikdatei "/var/named/data/named_stats.txt";
                Memstatistik-Datei "/var/named/data/named_mem_stats.txt";
                Rekursionsdatei "/var/named/data/named.recursing";
                Secroots-Datei "/var/named/data/named.secroots";
                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.13.144 ##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 benannt]# systemctl start nginx ##Nginx-Dienst starten [root@localhost benannt]# netstat -ntap | grep nginx ##Port anzeigen tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 4093/nginx: master

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. Besuchen Sie mit dem alten Domänennamen und überprüfen Sie die Weiterleitung


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.13.140"){
        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 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.13.144
[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.13.144" > /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

Greifen Sie über den Browser auf http://www.accp.com/100-(100|200)-100.html zu, um zur Seite http://www.accp.com zu 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.13.144  
[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 - Umleitung basierend auf der häufigsten URL-Anfrage

Besuchen Sie 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 Erklärung der Lösung für NGINX zum Umstieg von https auf http
  • So leiten Sie eine URL mit Nginx Rewrite um
  • So leiten Sie HTTP 301 auf einen Domänennamen mit www im Nginx-Server um
  • So zwingen Sie Nginx zur Verwendung des https-Zugriffs (http springt zu https)
  • So konfigurieren Sie die Nginx-Seitenumleitung entsprechend verschiedener Browsersprachen
  • Detaillierte Erläuterung der Nginx-Lösung des Homepage-Sprungproblems
  • Detaillierte Erklärung der Nginx 301-Weiterleitung zum Domänennamen mit www
  • Lösung für Nginx, das nicht zur Upstream-Adresse springt
  • So leiten Sie über den Nginx-Lastausgleich zu https um
  • Verwenden des Map-Befehls von Nginx zum Umleiten von Seiten
  • Lösen Sie das Problem, dass bei der Bereitstellung von thinkPHP 5 mit nginx nur auf die Startseite umgeleitet wird
  • Beispielcode für die Verwendung von Nginx zur Implementierung einer 301-Weiterleitung zum https-Stammdomänennamen
  • Nginx verbietet den direkten Zugriff über IP und leitet auf eine benutzerdefinierte 500-Seite weiter
  • Detaillierte Erklärung, wie man HSTS in nginx aktiviert, um den Browser zu zwingen, auf HTTPS-Zugriff umzuleiten
  • Implementierung des Umschreibesprungs in Nginx
  • Detaillierte Erläuterung der Standortübereinstimmung und der Umleitung in Nginx
  • Versteckte Nginx-Weiterleitung (Browser-URL bleibt nach der Weiterleitung unverändert)

<<:  Beispiel für die Verwendung von Javascript zum Ziehen und Tauschen von Div-Positionen

>>:  MySQL-Optimierungsstrategie (empfohlen)

Artikel empfehlen

MySQL-Datenbankgrundlagen: Eine Zusammenfassung der grundlegenden Befehle

Inhaltsverzeichnis 1. Hilfeinformationen nutzen 2...

Beispiel zur Erläuterung der Größe einer MySQL-Statistiktabelle

Das Zählen der Größe jeder Tabelle in jeder Daten...

Detailliertes Tutorial zum Upgrade von Zabbix Monitoring 4.4 auf 5.0

1. Zabbix-Backup [root@iZ2zeapnvuohe8p14289u6Z /]...

Eine kurze Analyse von Patroni in Docker-Containern

Inhaltsverzeichnis Erstellen eines Images Dateist...

So implementieren Sie eine geplante Sicherung von MySQL unter Linux

In tatsächlichen Projekten muss die Datenbank reg...

Docker installiert MySQL und löst das chinesische verstümmelte Problem

Inhaltsverzeichnis 1. Ziehen Sie das MySQL-Image ...

Tiefgreifendes Verständnis der Matching-Logik von Server und Standort in Nginx

Server-Abgleichlogik Wenn Nginx entscheidet, in w...

Implementierung der Docker-Bereitstellung von Webprojekten

Im vorherigen Artikel wurde der Docker-Dienst ins...

Shell-Skript zur Überwachung des MySQL-Master-Slave-Status

Geben Sie ein Shell-Skript unter Linux frei, um d...