Heim > Betrieb und Instandhaltung > Nginx > So konfigurieren Sie Nginx zum Aufzeichnen und Analysieren langsamer Antwortanforderungen und zum Ersetzen von Website-Antwortinhalten

So konfigurieren Sie Nginx zum Aufzeichnen und Analysieren langsamer Antwortanforderungen und zum Ersetzen von Website-Antwortinhalten

王林
Freigeben: 2023-05-12 20:16:12
nach vorne
2155 Leute haben es durchsucht


1. Modulinstallation
Die Installationsmethode für Nginx-Module von Drittanbietern wird hier übersprungen.
Konfigurationsparameter

./configure --prefix=/usr/local/nginx-1.4.1 --with-http_stub_status_module \
 --add-module=../ngx_http_log_request_speed
Nach dem Login kopieren

2. Befehl log_request_speed
2.1 log_request_speed_filter
Syntax:

 log_request_speed_filter [on|off]
Nach dem Login kopieren

Konfigurationsabschnitt: n/a
Kontext: Standort, Server, http
Aktivieren oder deaktivieren Sie das Modul
2.2 log_request_speed _filter_timeout
Grammatik:

log_request_speed_filter_timeout [num sec]
Nach dem Login kopieren

Standard: 5 Sekunden
Konfigurationsabschnitt: Standort, Server, http
Dies ist kein echter Timeout, aber es bedeutet, dass, wenn die Anfrage die hier angegebene Zeit überschreitet, sie im Nginx-Fehlerprotokoll aufgezeichnet wird. Der Standardwert ist 5000 Mikrosekunden (5 Sekunden), wenn eine Anfrage weniger als 5 Sekunden dauert, wird die Anfrage nicht im Protokoll aufgezeichnet, aber wenn sie 5 Sekunden überschreitet, wird die Anfrage im Nginx-Fehlerprotokoll aufgezeichnet
3 Verwendungsbeispiel
3.1 Nginx-Konfiguration

http{
   log_request_speed_filter on;
   log_request_speed_filter_timeout 3;
   ...
}
Nach dem Login kopieren

Die im Fehlerprotokoll aufgezeichneten langsamen Anforderungen lauten wie folgt

So konfigurieren Sie Nginx zum Aufzeichnen und Analysieren langsamer Antwortanforderungen und zum Ersetzen von Website-Antwortinhalten

3.2 Protokollanalyse

cd /usr/local/nginx-1.4.1/logs
wget http://wiki.nginx.org/images/a/a8/log_analyzer.tar.gz
tar -xzvf log_analyzer.tar.gz
cd request_speed_log_analyzer
# cat ../error.log | grep 'process request'| ./analyzer.pl -r
Nach dem Login kopieren
post /wp-admin/admin-ajax.php http/1.1 --- avg ms: 1182, value count: 2
get /shmb/1145.html http/1.1 --- avg ms: 2976, value count: 1 <--- the winner
Nach dem Login kopieren

Aus dem Protokoll haben wir festgestellt, dass es hier zwei langsame Anforderungen gibt, die langsamste /shmb/ 1145.html, und es ist auch als „der Gewinner“ gekennzeichnet, Autor, Sie gewinnen. Sehr humorvoll.
3.3 Skriptsyntax analysieren

# ./analyzer.pl -h
Nach dem Login kopieren
  • -h: Diese Hilfemeldung # Hilfemeldung anzeigen

  • -u: Gruppieren nach Upstream # Gruppieren nach Upstream

  • -o: Gruppieren nach Host # Gruppieren nach Host

  • -r: Auf Anfrage gruppieren # Auf Anfrage gruppieren, dies empfehlen

4. Nginx-Testversion

Der Autor testet derzeit nur unter 0.6.35 und 0.7.64 und kann nicht garantieren, dass dies möglich ist in anderen Umgebungen verwendet werden. Meine aktuelle Testversion ist 1.4.1, die derzeit normal verwendet wird. Bitte testen Sie sie, bevor Sie sie verwenden.

nginx ersetzt Website-Antwortinhalt (ngx_http_sub_module)
ngx_http_sub_module-Modul ist ein Filter, der die Zeichenfolge im Website-Antwortinhalt ändert, wenn Sie beispielsweise alle „jb51“ im Antwortinhalt durch „diese Site“ ersetzen möchten. , dies Das Modul wurde in Nginx integriert, ist jedoch nicht standardmäßig installiert. Wenn Sie es installieren müssen, müssen Sie die Konfigurationsparameter hinzufügen: --with-http_sub_module
1 Anweisungen (Anweisungen)
Syntax: ​​​​

sub_filter string replacement;
Nach dem Login kopieren

Standardwert:​​​ –
Konfigurationsabschnitt:​​​ Server, Standort
Einstellungen müssen die Beschreibungszeichenfolge verwenden, um die Beschreibungszeichenfolge zu ersetzen, und die Ersetzung ist die neuer String, der Variablen enthalten kann.
Syntax:

sub_filter_last_modified on | off;
Nach dem Login kopieren

Standardwert: sub_filter_last_modified off;
Konfigurationsabschnitt: http, server, location
Dieser Befehl wurde in dieser Version nicht hinzugefügt und kann ignoriert werden „Zuletzt geändertes“ Header-Feld aus der ursprünglichen Antwort während des Ersetzens, um das Zwischenspeichern der Antwort zu erleichtern.
Standardmäßig wird das Header-Feld entfernt, wenn der Inhalt der Antwort während der Verarbeitung geändert wird.
Syntax:

 sub_filter_once on | off;
Nach dem Login kopieren

Standardwert: sub_filter_once on;

Konfigurationsabschnitt: http, Server, Standort
Einmalige oder mehrfache Zeichenfolgenersetzung, die Standardersetzung ist einmal. Wenn Sie beispielsweise jb51 im Antwortinhalt durch diese Site ersetzen möchten, wird nur das erste angezeigt, wenn mehrere jb51 angezeigt werden Wenn diese Option deaktiviert ist, werden alle jb51 ersetzt. Syntax:

 sub_filter_types mime-type ...;
Nach dem Login kopieren
Standardwert: sub_filter_types text/html; Konfigurationsabschnitt: http, Server, Standort text/html“, wenn als * angegeben, dann alle

2. Beispiel für Nginx-Ersatzzeichenfolge

2.1 Konfiguration


server {
  listen    80;
  server_name www.jb51.net;
 
  root /data/site/www.jb51.net;  
 
  location / {
    sub_filter jb51 &#39;本站&#39;;
    sub_filter_types text/html;
    sub_filter_once on;
  }
}
Nach dem Login kopieren


2.2 Test
Der Inhalt ist wie folgt
# cat /data/site/www.jb51.net/2013/10/20131001_sub1.html
Nach dem Login kopieren
welcome to jb51!
jb51 team!
Nach dem Login kopieren

Zugriff. Ergebnisse

# curl www.jb51.net/2013/10/20131001_sub1.html
Nach dem Login kopieren
Nach dem Login kopieren

welcome to 本站!
jb51 team!
Nach dem Login kopieren

Wir Sie können sehen, dass bei der Ersetzung die Groß-/Kleinschreibung nicht beachtet wird und jb51 nur einmal ersetzt wurde. Ich habe versucht, sub_filter_once ein- und auszuschalten.

location / {
  sub_filter jb51 &#39;本站&#39;;
  sub_filter_once off;
}
Nach dem Login kopieren

Dann testen

# curl www.jb51.net/2013/10/20131001_sub1.html
Nach dem Login kopieren
Nach dem Login kopieren
welcome to 本站!
本站 team!
Nach dem Login kopieren

Wir können sehen, dass jb51 ersetzt wurde.

Wenn Sie beispielsweise nach ein Stück js anhängen möchten, lautet die Konfiguration wie folgt:

location / {
  sub_filter   </head> &#39;</head><script language="javascript" src="$script"></script>&#39;;
  sub_filter_once on;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonSo konfigurieren Sie Nginx zum Aufzeichnen und Analysieren langsamer Antwortanforderungen und zum Ersetzen von Website-Antwortinhalten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:yisu.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