Heim  >  Artikel  >  Betrieb und Instandhaltung  >  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

王林
王林nach vorne
2023-05-12 20:16:122032Durchsuche


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

2. Befehl log_request_speed
2.1 log_request_speed_filter
Syntax:

 log_request_speed_filter [on|off]

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]

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;
   ...
}

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
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

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
  • -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;

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;

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;

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 ...;
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;
  }
}


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

Zugriff. Ergebnisse

# curl www.jb51.net/2013/10/20131001_sub1.html

welcome to 本站!
jb51 team!

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;
}

Dann testen

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

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;
}

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:yisu.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen