如何在自己网站添加链接,广州地铁站路线图,网站变灰代码 所有浏览器,阜宁网站制作收费标准如果想要在nginx中打印出 http request 的所有 header#xff0c;需要在编译nginx时开启 1、安装编译所需的依赖
apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev2、创建下载路径
mkdir -p /opt/download3、下载所需的文件
# 不要下载…如果想要在nginx中打印出 http request 的所有 header需要在编译nginx时开启 1、安装编译所需的依赖
apt-get install build-essential libpcre3 libpcre3-dev zlib1g zlib1g-dev libssl-dev2、创建下载路径
mkdir -p /opt/download3、下载所需的文件
# 不要下载官网http://luajit.org/download/的要去下载openresty的优化版本 后面会说出现的坑
luajit: wget --no-check-certificate https://github.com/openresty/luajit2/archive/refs/tags/v2.1-20210510.tar.gz
lua-nginx-module: wget --no-check-certificate https://github.com/openresty/lua-nginx-module/archive/refs/tags/v0.10.20.tar.gz
lua-resty-core: wget --no-check-certificate https://github.com/openresty/lua-resty-core/archive/refs/tags/v0.1.22.tar.gz
lua-resty-lrucache: wget --no-check-certificate https://github.com/openresty/lua-resty-lrucache/archive/refs/tags/v0.11.tar.gz
tengine-2.3.2(nginx-1.17.3): wget --no-check-certificate http://tengine.taobao.org/download/tengine-2.3.2.tar.gz
ngx_devel_kit-0.3.1: wget --no-check-certificate https://github.com/vision5/ngx_devel_kit/archive/refs/tags/v0.3.1.tar.gz
openssl-1.1.1f: wget --no-check-certificate https://www.openssl.org/source/old/1.1.1/openssl-1.1.1f.tar.gz解压所有文件
ls *.tar.gz | xargs -n1 tar xzvf安装并添加luajit环境变量
cd luajit2-2.1-20210510
make install PREFIX/usr/local/LuaJIT
# 编辑环境便利文件
vim /etc/profile.d/lua.sh
export LUAJIT_LIB/usr/local/LuaJIT/lib
export LUAJIT_INC/usr/local/LuaJIT/include/luajit-2.1
# 引用环境变量
source /etc/profile.d/lua.sh 安装lua_core
cd lua-resty-core-0.1.22
make install PREFIX/usr/local/lua_core
cd ../lua-resty-lrucache-0.11
make install PREFIX/usr/local/lua_core编译安装 tenginenginx
cd tengine-2.3.2
./configure --prefix/usr/local/nginx-1.17.3 --with-http_stub_status_module --with-http_gzip_static_module --with-select_module --with-poll_module --with-threads --with-file-aio --with-http_ssl_module --with-http_v2_module --with-http_realip_module --with-http_addition_module --with-http_sub_module --with-http_dav_module --with-http_flv_module --with-http_mp4_module --with-http_gunzip_module --with-http_gzip_static_module --with-http_auth_request_module --with-http_random_index_module --with-http_secure_link_module --with-http_degradation_module --with-http_slice_module --with-stream --with-openssl/opt/download/openssl-1.1.1f --add-module/opt/download/lua-nginx-module-0.10.20 --add-module/opt/download/ngx_devel_kit-0.3.1 --add-modulemodules/ngx_http_upstream_check_module --add-modulemodules/ngx_http_reqstat_module --add-modulemodules/ngx_http_sysguard_module --add-modulemodules/ngx_http_upstream_session_sticky_module --add-modulemodules/ngx_http_user_agent_module --add-modulemodules/ngx_slab_stat
make
make install加载lua库加入到ld.so.conf文件
cat /etc/ld.so.conf.d/libc.conf
/usr/local/lib
/usr/local/LuaJIT/lib
# 加载
ldconfig配置并测试lua环境
添加在http模块下
# 指定lua模块路径多个之间;分隔其中;;表示默认搜索路径默认到nginx的根目录下找
lua_package_path /usr/local/Lua_core/lib/lua/?.lua;;;
#指定server配置文件目录
include /usr/local/nginx-1.17.3/conf/conf.d/*.conf;
#自定义日志格式
log_format test escapejson {time: $time_iso8601, server_name: $host, port: $server_port, method: $request_method, args: $args, uri: $uri, server_protocol: $server_protocol, status: $status, body_bytes_sent: $body_bytes_sent, upstream_addr: $upstream_addr, upstream_status: $upstream_status, upstream_response_time: $upstream_response_time, req_header: $req_header};测试域名配置文件
server {listen 80;server_name www.test.com;access_log /var/log/nginx/www.test.com.access.log test;set $req_header ;header_filter_by_lua local h ngx.req.get_headers()for k, v in pairs(h) dongx.var.req_header ngx.var.req_header .. k....v.. end;location / {proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;proxy_set_header Host $http_host;# requset by yanshulproxy_intercept_errors on;error_page 301 success;proxy_pass http://172.17.64.32:31593;}location /lua {set $test hello,world;content_by_lua ngx.header.content_typetext/plainngx.say(ngx.var.test);}
}启动nginx
/usr/local/nginx-1.17.3/sbin/nginxcurl 测试请求
curl 127.0.0.1/lua -H host: www.test.com -H test: hjy日志
{time: 2023-08-24T08:03:5300:00, server_name: www.test.com, port: 80, method: GET, args: , uri: /lua, server_protocol: HTTP/1.1, status: 200, body_bytes_sent: 22, upstream_addr: , upstream_status: , upstream_response_time: , req_header: testhjy user-agentcurl/7.58.0 accept*/* hostwww.test.com }看到日志中 req_header 字段输出所有request header