Maison > Opération et maintenance > Nginx > 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

王林
Libérer: 2023-05-12 20:16:12
avant
2151 Les gens l'ont consulté


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
Copier après la connexion

2. Commande log_request_speed
2.1 log_request_speed_filter
Syntaxe :

 log_request_speed_filter [on|off]
Copier après la connexion

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]
Copier après la connexion

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;
   ...
}
Copier après la connexion

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
Copier après la connexion
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
Copier après la connexion

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
Copier après la connexion
  • -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;
Copier après la connexion

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;
Copier après la connexion

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;
Copier après la connexion

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 ...;
Copier après la connexion

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;
  }
}
Copier après la connexion

Puis testez

# cat /data/site/www.jb51.net/2013/10/20131001_sub1.html
Copier après la connexion
welcome to jb51!
jb51 team!
Copier après la connexion

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
Copier après la connexion

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal