Ajouter le journal de réponse demandé au journal nginx

不言
Libérer: 2023-03-25 12:34:01
original
2571 Les gens l'ont consulté

Cet article présente principalement le journal des réponses d'ajout de requêtes dans le journal nginx. Il est très bon et a une valeur de référence. Les amis qui en ont besoin peuvent s'y référer

Puisque cette fonction n'est pas incluse dans le build. -en fonction de nginx, il est nécessaire d'installer le module tiers ngx_lua Puisque ce module nécessite la langue Lua, vous devez installer le pack de langue Lua correspondant

1. 🎜>

# cd /usr/local/src
# wget http://luajit.org/download/LuaJIT-2.0.2.tar.gz
# tar -xzvf LuaJIT-2.0.2.tar.gz
# cd LuaJIT-2.0.2
# make
Copier après la connexion

Le contenu suivant apparaît, indiquant une compilation réussie

OK  Successfully built LuaJIT
make[1]: Leaving directory `/usr/local/src/LuaJIT-2.0.2/src'
==== Successfully built LuaJIT 2.0.2 ====
# make install
Copier après la connexion

Le contenu suivant apparaît, indiquant une installation réussie

= === LuaJIT 2.0.2 installé avec succès sur /usr/local ====

2. Téléchargez et préparez nginx. module lua

# cd /usr/local/src
# wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.6.tar.gz
# tar -xzvf v0.8.6
Copier après la connexion

3. Installer nginx

# cd /usr/local/src/
# wget http://nginx.org/download/nginx-1.4.2.tar.gz
# tar -xzvf nginx-1.4.2.tar.gz
# cd nginx-1.4.2
//先导入环境变量,告诉nginx去哪里找luajit
# export LUAJIT_LIB=/usr/local/lib
# export LUAJIT_INC=/usr/local/include/luajit-2.0
# ./configure --prefix=/usr/local/nginx-1.4.2 --add-module=../lua-nginx-module-0.8.6
# make -j2
# make install
Copier après la connexion

4. Testez si l'installation a réussi

# cd /usr/local/nginx-1.4.2/conf/
# vi nginx.conf
Copier après la connexion

Méthode de commande Lua

Ajoutez une localisation dans le serveur

location /hello {
   default_type 'text/plain';
   content_by_lua 'ngx.say("hello, lua")';
  }
Copier après la connexion

Puis démarrez nginx

# cd /usr/local/nginx-1.4.2/sbin
# ./nginx
Copier après la connexion

Accès au navigateur :

http://127.0.0.1/ bonjour

affiche : bonjour, lua

Remarque :

1. Notez que le répertoire d'installation de chaque module ne peut pas apparaître. Erreur

2 Si vous avez déjà installé nginx via apt-get, vous devez d'abord supprimer nginx, car le logiciel. téléchargé de cette manière ne peut pas être compilé

3.

Voici l'explication L'installation tierce est réussie,

5. 🎜>

http {
 log_format mylog 'response_body:$resp_body';

 server {
  #记录nginx请求返回值
  lua_need_request_body on;
  set $resp_body "";
  body_filter_by_lua '
   local resp_body = string.sub(ngx.arg[1], 1, 1000)
   ngx.ctx.buffered = (ngx.ctx.buffered or "") .. resp_body
   if ngx.arg[2] then
    ngx.var.resp_body = ngx.ctx.buffered
   end
  ';
     
  location / {
   proxy_pass http://127.0.0.1:5000;
   access_log /var/log/nginx/access.log mylog;
   }
 }
}
Copier après la connexion

La réponse est ajoutée avec succès à ce stade du journal.

Si vous connaissez le langage Lua, vous pouvez modifier le code suivant pour mieux répondre à vos exigences.

  body_filter_by_lua '
   local resp_body = string.sub(ngx.arg[1], 1, 1000)
   ngx.ctx.buffered = (ngx.ctx.buffered or "") .. resp_body
   if ngx.arg[2] then
    ngx.var.resp_body = ngx.ctx.buffered
   end
  ';
Copier après la connexion

Lorsque le journal est généré, vous constaterez que lorsque les résultats de la réponse linguistique impliquent des caractères chinois, ils sont convertis en hexadécimaux et ne peuvent pas être reconnus.

Une partie du journal de réponse est la suivante :

response_body : {x22codex22 : 404, x22messagex22 : x22xE8xAFxB7xE6xB1x82xE7x9Ax84xE8xB5x84xE6xBAx90xE4xB8x8 DxE 5xADx98xE5x9CxA8x22, x22datax22 : {}}


Passable Copier dans le script Python à résoudre.

str1='''
{\x22code\x22: 404, \x22message\x22: \x22\xE8\xAF\xB7\xE6\xB1\x82\xE7\x9A\x84\xE8\xB5\x84\xE6\xBA\x90\xE4\xB8\x8D\xE5\xAD\x98\xE5\x9C\xA8\x22, \x22data\x22: {}}
'''
print(str1.encode('raw_unicode_escape').decode('utf-8'))
Copier après la connexion

Le résultat de la saisie est :

{"code": 404, "message": "La ressource demandée n'existe pas", "data": {}}

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:php.cn
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!