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
OK Successfully built LuaJIT make[1]: Leaving directory `/usr/local/src/LuaJIT-2.0.2/src' ==== Successfully built LuaJIT 2.0.2 ==== # make install
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
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
4. Testez si l'installation a réussi
# cd /usr/local/nginx-1.4.2/conf/ # vi nginx.conf
location /hello { default_type 'text/plain'; content_by_lua 'ngx.say("hello, lua")'; }
# cd /usr/local/nginx-1.4.2/sbin # ./nginx
Remarque :
1. Notez que le répertoire d'installation de chaque module ne peut pas apparaître. Erreur2 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; } } }
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 ';
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'))
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!