为什么要做nginx响应内容以及思路及解决方案
1 在某次seo中,发现google spider 爬取页面是500,这让我陷入到深深的沉思当中,为什么会产生这样的问题呢,我对google保持了怀疑!
2 于是在怀疑当中,我查看了google 5xx文档,发现可能是页面参数问题???(并不是!)
3 突然想到nginx具有查看日志的功能,然后 grep 了access日志,发现竟然是服务器返回的500!!!
4 但是此时我并不知道如何解决这个问题(应用程序不是我写的!世界上最美丽的语言我看不懂!)
5 于是我想到了,那可不可以用nginx来生成访问日志呢,带着这个疑问我打开了百度! 唉!还真行!
如何做 架构设计是怎么样的,需要用到哪些技术点
1 翻阅了一下资料后,我确定了一个方案,利用 lua-nginx-module 进行响应日志生成
2 日志有了,那如何不停机实现响应记录呢?因为之前已经有一台ng了,要是重新 add lua-nginx-module 岂不是要进行停机?
3 于是我有了第二套方案, 我新装一个ng,然后检测我想要的端口 代理转发过去不久行了嘛?
4 说干就干!
下载安装LuaJIT
1 | # cd /usr/local/src |
如果出现以下内容,则表示编译成功
1 | OK Successfully built LuaJIT |
- 下载准备nginx lua模块
1
2
3# cd /usr/local/src
# wget https://github.com/chaoslawful/lua-nginx-module/archive/v0.8.6.tar.gz
# tar -xzvf v0.8.6 - 安装nginx
1
2
3
4
5
6
7
8
9
10# 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 - 测试安装是否成功
1
2
3
4
5
6# cd /usr/local/nginx-1.4.2/conf/
# vi nginx.conf
location /hello {
default_type 'text/plain';
content_by_lua 'ngx.say("hello, lua")';
}
当然,如果我们在正式环境,就不能够这样玩了,我们可以修改listen 监听的port来测试是否安装好了lua
ng配置转发
在我们确定已经装好了新的ng的时候,我们现在直接打开配置文件
1 | cd /usr/local/nginx-1.4.2 |
添加井号包裹住的代码,这里贴图修改的代码,自取
1 | http { |
注意:这里access_log 的地址就是我们request body的存储地址
- 本文作者: Cayden
- 本文链接: http://example.com/2021/02/26/nginx不停机实现记录响应内容的功能/
- 版权声明: 本博客所有文章除特别声明外,均采用 MIT 许可协议。转载请注明出处!