码迷,mamicode.com
首页 > 其他好文 > 详细

nginx _lua (缓存,proxy)

时间:2017-08-15 19:51:37      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:eve   str   one   配置   bin   file   end   vhost   time   

1.安装
http://www.ttlsa.com/nginx/nginx-modules-ngx_lua/

 

2.常见问题

 

3.proxy应用基于lua(类似anyproxy)
proxy_pass http://$http_host;

body_filter_by_lua_file /data/init.lua;

local data = ngx.arg[1] or ""
local html = string.gsub(data,"618","6119")
ngx.arg[1] = html

 

4.缓存
./nginx -s reload(/data/nginx/sbin)

 

nginx.conf(/data/nginx/conf)

proxy_connect_timeout 5;
proxy_read_timeout 60;
proxy_send_timeout 5;
proxy_buffer_size 16k;
proxy_buffers 4 64k;
proxy_busy_buffers_size 128k;
proxy_temp_file_write_size 128k;
proxy_temp_path /home/temp_dir;
proxy_cache_path /home/cache levels=1:2 keys_zone=cache_one:50m inactive=20m max_size=30g;

 

vhosts(/data/nginx/conf/vhosts)

location ^~ /ad-test/ {
proxy_store off;
proxy_redirect off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;


proxy_ignore_headers Expires Set-Cookie;
proxy_cache cache_one;
proxy_cache_valid 200 304 1h;
expires 3h;
#add_header Access-Control-Allow-Origin $referer_domain;
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Credentials true;

proxy_http_version 1.1;
proxy_set_header Connection "";
proxy_set_header Host $http_host;
proxy_pass http://localhost:8080;

}

 

5.incudle
#定制proxy_cache的key,去除imei和sn等个性化参数。
set $custom_proxy_cache_key $host$uri$is_args$args;
include vhosts/customize_proxy_cache_key;
调用vhosts/customize_proxy_cache_key 生成 customize_proxy_cache_key
proxy_cache_key $custom_proxy_cache_key;

#vhosts/customize_proxy_cache_key:
if ( $custom_params ~ ^(.*)(&sn=[^&]+)(.*)$) {
set $a $1;
set $c $3;
set $custom_params "${a}${c}";
}
set $custom_proxy_cache_key $host$uri$is_args$custom_params;


6.log
(1)自定义log信息
log_format log_req_resp ‘$remote_addr - $remote_user [$time_local] ‘
‘"$request" $status $body_bytes_sent ‘

(2)加入log
access_log logs/host.access.log log_req_resp;
‘"$http_referer" "$http_user_agent" $request_time req_body:"$request_body" resp_body:"$resp_body"‘;

(3)配置 resp_body
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

nginx _lua (缓存,proxy)

标签:eve   str   one   配置   bin   file   end   vhost   time   

原文地址:http://www.cnblogs.com/season-xie/p/7366916.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!