Heim > Betrieb und Instandhaltung > Nginx > Einführung in die Nginx-Traffic-Copy-Funktion

Einführung in die Nginx-Traffic-Copy-Funktion

王林
Freigeben: 2021-03-12 10:38:59
nach vorne
3708 Leute haben es durchsucht

Einführung in die Nginx-Traffic-Copy-Funktion

1. Warum kopieren wir den Datenverkehr der Produktionsumgebung in die Pre-Launch-Umgebung oder Testumgebung?

Dies hat unter anderem folgende Vorteile:

  • Sie können überprüfen, ob die Funktion normal ist und die Leistung des Dienstes.

  • Verwenden Sie echte und effektive Verkehrsanfragen zur Überprüfung, ohne Daten zu erstellen, was keine Auswirkungen hat normaler Online-Zugriff;

  • Dies ist nicht dasselbe wie die Graustufenfreigabe, der Spiegelverkehr hat keinen Einfluss auf den tatsächlichen Verkehr;

  • Rekonstruktion, wenn der Dienst umstrukturiert wird; Dies ist auch eine Testmethode.

  • Um das Kopieren des Datenverkehrs zu realisieren, stellt Nginx das Modul ngx_http_mirror_module bereit

  • 2. Installieren Sie Nginx

Homepage und richten Sie das Yum-Warehouse ein. Erstellen Sie dazu eine Datei /etc/yum.repos.d/nginx.repo. Schreiben Sie den folgenden Inhalt in die Datei Allgemeiner Fall Als nächstes befindet sich die Datei nginx.conf im Verzeichnis /usr/local/nginx/conf oder /etc/nginx oder /usr/local/etc/nginx

Um Nginx zu starten, geben Sie einfach nginx direkt in den Befehl ein Sobald der Masterprozess das Signal zum Neuladen der Konfiguration erhält, prüft er, ob die Syntax der neuen Konfigurationsdatei korrekt ist, und versucht, die darin bereitgestellte Konfiguration anzuwenden. Bei Erfolg startet der Master-Prozess einen neuen Arbeitsprozess und sendet eine Nachricht an den alten Arbeitsprozess mit der Aufforderung, ihn herunterzufahren. Andernfalls macht der Masterprozess die Änderungen rückgängig und verwendet weiterhin die alte Konfiguration. Nach Erhalt des Shutdown-Befehls akzeptiert der alte Arbeitsprozess keine neuen Verbindungen mehr, bis alle zuvor akzeptierten Verbindungen verarbeitet wurden. Danach wird der alte Arbeitsprozess beendet.

(Kostenloses Teilen von Lernvideos:

php-Video-Tutorial

)

Die Prozess-ID des Nginx-Masterprozesses wird standardmäßig in der Datei nginx.pid abgelegt. Das Verzeichnis, in dem sich die Datei befindet, ist im Allgemeinen /usr/local/. nginx/ logs oder /var/run

Sie können Nginx auch so stoppen

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
[nginx-mainline]
name=nginx mainline repo
baseurl=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true
Nach dem Login kopieren

Die anfängliche Konfigurationsdatei sieht so aus:

yum install nginx
Nach dem Login kopieren

3. ngx_http_mirror_module

Das Modul ngx_http_mirror_module (1.13.4) implementiert die Spiegelung einer ursprünglichen Anfrage indem Spiegel-Unteranfragen im Hintergrund erstellt werden. Einführung in die Nginx-Traffic-Copy-Funktion

So verstehe ich es hier. Spiegel bedeutet hier ursprünglich, dass es sich um eine Spiegel-Site handelt, die alle Anfragen sammelt. Dieser Spiegel repräsentiert die gesamte Realität. Mit diesem Bild können wir dieses Bild verwenden, um in Zukunft einige Dinge zu tun, z. B. alle Anfragen zu reproduzieren, wodurch wir den Online-Prozess an andere Orte kopieren können. Einführung in die Nginx-Traffic-Copy-Funktion

Das auf der offiziellen Website angegebene Beispiel ist sehr einfach und lautet wie folgt:

# 启动nginx
nginx 
# fast shutdown
nginx -s stop
# graceful shutdown
nginx -s quit
# reloading the configuration file
nginx -s reload
# reopening the log files
nginx -s reopen
# list of all running nginx processes
ps -ax | grep nginx
Nach dem Login kopieren

Wenn der Anforderungstext gespiegelt ist, wird der Anforderungstext vor dem Erstellen der Unteranforderung gelesen.

kill -s QUIT 3997
Nach dem Login kopieren
Wir haben Nginx früher installiert, aber es enthielt nicht was Wir benötigen das Modul ngx_http_mirror_module. Wenn Sie es also wirklich verwenden möchten, ist es am besten, eine benutzerdefinierte Installation zu verwenden, das heißt, es aus dem Quellcode zu erstellen

Laden Sie zunächst den Quellcode http://nginx.org/en herunter /download.html

Als nächstes kompilieren und installieren, zum Beispiel:

user  nginx;
worker_processes  1;
error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';
    access_log  /var/log/nginx/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    keepalive_timeout  65;
    #gzip  on;
    include /etc/nginx/conf.d/*.conf;
}
Nach dem Login kopieren
location / {
    mirror /mirror;
    proxy_pass http://backend;
}
location = /mirror {
    internal;
    proxy_pass http://test_backend$request_uri;
}
Nach dem Login kopieren

Konfiguration

location / {
    mirror /mirror;
    mirror_request_body off;
    proxy_pass http://backend;
}
location = /mirror {
    internal;
    proxy_pass http://log_backend;
    proxy_pass_request_body off;
    proxy_set_header Content-Length "";
    proxy_set_header X-Original-URI $request_uri;
}
Nach dem Login kopieren
Verwandte Empfehlungen:

nginx-Tutorial


Das obige ist der detaillierte Inhalt vonEinführung in die Nginx-Traffic-Copy-Funktion. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:cnblogs.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage