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
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
Die anfängliche Konfigurationsdatei sieht so aus:
yum install nginx
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.
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.
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
kill -s QUIT 3997
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; }
location / { mirror /mirror; proxy_pass http://backend; } location = /mirror { internal; proxy_pass http://test_backend$request_uri; }
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; }
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!