Maison  >  Article  >  Opération et maintenance  >  Comment configurer Nginx pour enregistrer et analyser les demandes de réponse lentes et remplacer le contenu des réponses du site Web

Comment configurer Nginx pour enregistrer et analyser les demandes de réponse lentes et remplacer le contenu des réponses du site Web

王林
王林avant
2023-05-12 20:16:122033parcourir


1. Installation du module
La méthode d'installation du module tiers nginx est ignorée ici.
Paramètres de configuration

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

2. Commande log_request_speed
2.1 log_request_speed_filter
Syntaxe :

 log_request_speed_filter [on|off]

Section de configuration : n/a
contexte : emplacement, serveur, http
Activer ou désactiver le module
2.2 log_request_speed_filter_ timeout
Grammaire :

log_request_speed_filter_timeout [num sec]

Par défaut : 5 secondes
Section de configuration : emplacement, serveur, http
Ce n'est pas un véritable délai d'attente, mais cela signifie que lorsque la requête dépasse le temps indiqué ici, elle sera enregistrée dans le journal des erreurs nginx. La valeur par défaut est. 5000 microsecondes (5 secondes), si une requête dure moins de 5 secondes, la requête ne sera pas enregistrée dans le journal, mais si elle dépasse 5 secondes, la requête sera enregistrée dans le journal des erreurs nginx
Exemple d'utilisation
3. 3.1 Configuration nginx

http{
   log_request_speed_filter on;
   log_request_speed_filter_timeout 3;
   ...
}

Les requêtes lentes enregistrées dans le journal des erreurs sont les suivantes

Comment configurer Nginx pour enregistrer et analyser les demandes de réponse lentes et remplacer le contenu des réponses du site Web

3.2 Analyse du journal

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

Dans le journal, nous avons constaté qu'il y a 2 requêtes lentes ici, la plus lente est /shmb/ 1145.html, et il est également marqué "le gagnant", auteur, vous gagnez. Très humoristique.
3.3 Analyser la syntaxe du script

# ./analyzer.pl -h
  • -h : ce message d'aide # Afficher le message d'aide

  • -u : grouper par amont # Grouper par amont

  • -o : grouper par hôte # Grouper par hôte

  • -r : groupe par demande # Groupe par demande, recommandez ceci

4. version de test de nginx

Actuellement, l'auteur ne teste que sous 0.6.35 et 0.7.64, et ne garantit pas qu'il peut être utilisé dans d’autres environnements. Ma version de test actuelle est la 1.4.1, qui est actuellement utilisée normalement. Veuillez la tester avant de l'utiliser.

nginx remplace le contenu de la réponse du site Web (ngx_http_sub_module)
Le module ngx_http_sub_module est un filtre qui modifie la chaîne dans le contenu de la réponse du site Web. Par exemple, si vous souhaitez remplacer tous les « jb51 » dans le contenu de la réponse par « ce site ». , ce Le module a été intégré à nginx, mais il n'est pas installé par défaut. Si vous devez l'installer, vous devez ajouter les paramètres de configuration : --with-http_sub_module
1 Instructions (directives)
Syntaxe :

sub_filter string replacement;

Valeur par défaut :   —
Section de configuration :  http, serveur, emplacement
les paramètres doivent utiliser la chaîne de description pour remplacer la chaîne de description est la chaîne à remplacer, et le remplacement est la nouvelle chaîne, qui peut contenir des variables.
Syntaxe :

sub_filter_last_modified on | off;

Valeur par défaut : sub_filter_last_modified off ;
Section de configuration : http, serveur, emplacement
Cette commande a été ajoutée dans nginx 1.5.1. Je ne l'ai pas dans cette version et peut être ignorée
permet de conserver le. Champ d'en-tête « dernière modification » de la réponse d'origine lors du remplacement pour faciliter la mise en cache de la réponse. Section de configuration : http, serveur, emplacement
Remplacement de chaîne une ou plusieurs fois, le remplacement par défaut est une fois. Par exemple, si vous souhaitez remplacer jb51 dans le contenu de la réponse par ce site, si plusieurs jb51 apparaissent, seul le premier le sera. remplacé. Si désactivé, alors tous les jb51 seront remplacés
Syntaxe :

 sub_filter_once on | off;

Valeur par défaut : sub_filter_types text/html;
Section de configuration : http, serveur, emplacement
Spécifiez le type MIME qui doit être remplacé, la valeur par défaut est " text / html ", s'il est spécifié comme *, alors tout

2. Exemple de chaîne de remplacement Nginx

2.1 Configuration

 sub_filter_types mime-type ...;

2.2 Test
Le contenu est le suivant peut voir que le remplacement n'est pas sensible à la casse et que jb51 n'a été remplacé qu'une seule fois. J'ai essayé de désactiver sub_filter_once.

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

Puis testez

# cat /data/site/www.jb51.net/2013/10/20131001_sub1.html
welcome to jb51!
jb51 team!

Nous pouvons voir que jb51 a été remplacé.
Par exemple, si vous souhaitez ajouter un morceau de js après , la configuration est la suivante :

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer