Implementierung des Umschreibesprungs in Nginx

Implementierung des Umschreibesprungs in Nginx

1. Neuer und alter Domain-Namenssprung

Anwendungsszenario: Domänennamebasierte Umleitung. Der alte Domänenname des Unternehmens lautet: www.peihua.com

Wenn geschäftliche Änderungen erforderlich sind, muss stattdessen der neue Domänenname www.zhenguo.com verwendet werden, der alte Domänenname kann jedoch nicht gelöscht werden. Sie müssen zum neuen Domänennamen springen und die folgenden Parameter bleiben unverändert

Konfigurieren Sie DNS und konfigurieren Sie die Auflösung von www.peihua.com (alt) bzw. www.zhenguo.com (neu).

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

(Sie müssen über die offizielle Quelle verfügen, um Nginx mit Yum zu installieren.)

yum installiere nginx -y
rpm -qc nginx //Konfigurationsdatei suchen

Ändern Sie die Nginx-Konfigurationsdatei

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

Server {
  hören Sie 80;
  Servername www.peihua.com; #Domänennamenänderung#Zeichensatz koi8-r;
  access_log /var/log/nginx/peihua.com-access.log main; #Speicherort der Protokolländerung / {
    #Domain-Umleitungwenn ($host = 'www.peihua.com') {
 umschreiben ^/(.*)$ http://www.zhenguo.com/$1 permanent;
    }
    root /usr/share/nginx/html;
    Index Index.html Index.htm;
  }

[root@localhost benannt]# systemctl restart nginx

Konfigurieren der Domänennamenauflösung

yum -y installiere bind

#Ändern Sie die Hauptkonfigurationsdatei [root@localhost conf.d]# vim /etc/named.conf
Optionen {
    listen-on port 53 { any; }; //Wechseln zu any
    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; }; //Ändern zu any

#Ändern Sie die regionale Konfigurationsdatei [root@localhost conf.d]# vim /etc/named.rfc1912.zones 
Zone "peihua.com" IN {
    Typ Master;
    Datei „peihua.com.zone“;
    Aktualisierung zulassen { keine; };
};

Zone "zhenguo.com" IN {
    Typ Master;
    Datei „zhenguo.com.zone“;
    Aktualisierung zulassen { keine; };
};

#Ändern Sie die regionale Datendatei [root@localhost conf.d]# cd /var/named/
[root@localhost benannt]# cp -p benannt.localhost peihua.com.zone
[root@localhost benannt]# cp -p peihua.com.zone zhenguo.com.zone

[root@localhost benannt]# systemctl start benannt

Browsertests

Die Browsereingabe simuliert den Zugriff auf http://www.peihua.com/test/1/index.php (obwohl dieser Anfrageinhalt nicht existiert) und springt zu
http://www.zhneguo.com/test/1/index.php, in den Headern ist 301 zu sehen, was bedeutet, dass eine permanente Weiterleitung erreicht wurde und die Parameter nach dem Domänennamen ebenfalls normal weiterleiten.

2. IP-basierte Zugriffsumleitung

Anwendungsszenario: Zugriffsumleitung basierend auf der Client-IP. Heute wird beispielsweise die Business-Version des Unternehmens gestartet. Alle IPs, die auf Inhalte zugreifen, zeigen eine feste Wartungsseite an. Nur die Unternehmens-IP: 12.0.0.100 kann normal zugreifen.

Ändern Sie die Nginx-Konfigurationsdatei

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

Server {
  hören Sie 80;
  Servername www.peihua.com;

 #Zeichensatz koi8-r;
  Zeichensatz „utf-8“; //Chinesische Zeichen erkennen access_log /var/log/nginx/peihua.com-access.log main;
  #Festlegen, ob die IP zulässig ist oder nicht. $rewrite true festlegen;
  #Beurteilen Sie, ob es sich um ein legales geistiges Eigentum handelt
  wenn ($remote_addr = "12.0.0.100") {
 setze $rewrite auf false;
 }
 # Illegale IP wird beurteilt und markiert, wenn ($rewrite = true) {
 neu schreiben (.+) /maintenance.html;
 }
 #Passen Sie das Tag an, um zum Site-Speicherort zu springen = /maintenance.html {
 root /usr/share/nginx/html;
 }

Fügen Sie der Datei „maintenance.html“ benutzerdefinierten Seiteninhalt hinzu

[root@localhost html]# cat /usr/share/nginx/html/maintenance.html 
<h1>Website wird gewartet</h1>

Browsertests

Verwenden Sie die IP-Adresse 12.0.0.100, um auf http://www.peihua.com zuzugreifen. Der Zugriff ist normal. Verwenden Sie die IP-Adresse 12.0.0.99, um auf http://www.peihua.com zuzugreifen. Die Wartungsseite wird angezeigt.

3. Springen Sie zum neuen Domänennamen basierend auf dem alten Domänennamen und fügen Sie danach ein Verzeichnis hinzu

Anwendungsszenario: Springen Sie basierend auf dem alten Domänennamen zum neuen Domänennamen und fügen Sie dahinter ein Verzeichnis hinzu. Der aktuelle Besuch lautet beispielsweise http://bbs.peihua.com.
Jetzt müssen Sie alle Beiträge unter diesem Domänennamen auf http://www.peihua.com/bbs umleiten. Denken Sie daran, die Parameter nach der Domänennamenumleitung unverändert zu lassen.

Ändern Sie die Nginx-Konfigurationsdatei

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

  hören Sie 80;
  Servername bbs.peihua.com;
  #Zeichensatz koi8-r;
  Zeichensatz „utf-8“;
  Zugriffsprotokoll /var/log/nginx/peihua.com-access.log Haupt;
  Standort /Beitrag {
       umschreiben (.+) http://www.peihua.com/bbs$1 dauerhaft;
  }

Hinweis: accp.com.zone muss die Host-Domänennamenauflösung ändern, www in bbs ändern

[root@localhost benannt]# cd /var/benannt
[root@localhost benannt]# vim peihua.com.zone 
$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 12.0.0.25

[root@localhost benannt]# systemctl restart benannt
[root@localhost benannt]# systemctl restart nginx

Browserzugriff

Der Browser besucht http://bbs.peihua.com/post/a.html und wird auf www.peihua.com/bbs/post/a.txt umgeleitet.

4. Springen basierend auf Parameterübereinstimmung

Anwendungsszenario: Umleitung basierend auf Parameterübereinstimmung, z. B. Besuch von http://www.peihua.com/100-(100 | 200)-100.html
Springen Sie zu http://www.peihua.com

Ändern Sie die Nginx-Konfigurationsdatei

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

Server {
  hören Sie 80;
  Servername www.peihua.com;
  
  #Zeichensatz koi8-r;
  Zeichensatz „utf-8“;
  Zugriffsprotokoll /var/log/nginx/peihua.com-access.log Haupt;
  
  wenn ($request_uri ~ ^/100-(100|200)-(\d+).html$) {
     umschreiben (.*) http://www.peihua.com permanent;
  }

Hinweis: \d entspricht einer Zahl zwischen 0 und 9

Ändern Sie den DNS und ändern Sie bbs in www

[root@localhost benannt]# vim peihua.com.zone 
$TTL 1D
@ IN SOA @ rname.ungültig. (
                    0; Seriennummer
                    1D; aktualisieren
                    1H; erneut versuchen
                    1W; ablaufen
                    3H ) ; Minimum
    @NEIN
    Eine 127.0.0.1
www IN A 12.0.0.25

[root@localhost benannt]# systemctl restart benannt
[root@localhost benannt]# systemctl restart nginx

Browsertests

Der Browser besucht http://www.peihua.com/100-200-26.html und wird auf die Homepage von www.peihua.com umgeleitet.

5. Weiterleitung basierend auf allen Seiten, die mit php enden, und basierend auf einer bestimmten Seite

Ändern Sie die Nginx-Konfigurationsdatei

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

Server {
  hören Sie 80;
  
  Servername www.peihua.com;
  #Zeichensatz koi8-r;
  Zeichensatz „utf-8“;
  Zugriffsprotokoll /var/log/nginx/peihua.com-access.log Haupt;
  Speicherort ~* /upload/.*\.php$ {
    umschreiben (.+) http://www.peihua.com permanent;
  }


[root@localhost benannt]# systemctl restart nginx

Browserzugriff

Der Browser besucht http://www.peihua.com/upload/a.php und wird auf www.peihua.com umgeleitet.

6. Weiterleitung basierend auf einer bestimmten Seite /abc/123.html

Ändern Sie die Nginx-Konfigurationsdatei

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

Server {
  hören Sie 80;
  Servername www.peihua.com;

  #Zeichensatz koi8-r;
  Zeichensatz „utf-8“;
  Zugriffsprotokoll /var/log/nginx/peihua.com-access.log Haupt;

  Standort ~* ^/abc/123.html {
    umschreiben (.+) http://www.peihua.com permanent;
  }
  
[root@localhost benannt]# systemctl restart nginx

Browserzugriff

Der Browser besucht http://www.peihua.com/abc/123.html und wird auf www.peihua.com umgeleitet.

Dies ist das Ende dieses Artikels über die Implementierung von Rewrite Jump in nginx. Weitere relevante Inhalte zu Nginx Rewrite Jump finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft 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 Erläuterung der Nginx-Rewrite-Jump-Anwendungsszenarien
  • Detaillierte Erklärung, wie man HSTS in nginx aktiviert, um den Browser zu zwingen, auf HTTPS-Zugriff umzuleiten
  • Detaillierte Erläuterung der Standortübereinstimmung und der Umleitung in Nginx
  • Versteckte Nginx-Weiterleitung (Browser-URL bleibt nach der Weiterleitung unverändert)

<<:  Eine kurze Analyse der parallelen WriteSet-Replikation von MySQL

>>:  Implementierung der Elementzeitleiste

Artikel empfehlen

Detaillierte Erklärung langer Transaktionsbeispiele in MySQL

Vorwort: Die Artikelserie „Erste Schritte mit MyS...

LINUX Prüft, ob der Port belegt ist

Ich konnte nie herausfinden, ob der Port belegt i...

HTML implementiert problemlos abgerundete Rechtecke

Frage: Wie erreiche ich mit Div+CSS und Positioni...

Bidirektionale verknüpfte Liste der JavaScript-Datenstruktur

Eine einfach verkettete Liste kann nur vom Anfang...

Was ist nach der Installation von Ubuntu 20.04 zu tun (Anleitung für Anfänger)

Ubuntu 20.04 wurde veröffentlicht und bringt viel...

MySql-Entwicklung einer automatischen Synchronisierungstabellenstruktur

Schwachstellen bei der Entwicklung Während des En...

MySQL-Transaktionsdetails

Inhaltsverzeichnis Einführung Vier Merkmale von T...

Zusammenfassung der Ereignisbehandlung im Vue.js-Frontend-Framework

1. v-on-Ereignisüberwachung Um DOM-Ereignisse abz...

Mehrere Methoden zum Bereitstellen mehrerer Front-End-Projekte mit nginx

Ich habe 3 Methoden zusammengefasst, um mehrere F...