worker_processes 1;
worker_rlimit_nofile 30000;
events {
worker_connections 10000;
use epoll;
multi_accept on;
}
http {
keepalive_timeout 65;
keepalive_requests 100000;
sendfile on;
tcp_nopush on;
tcp_nodelay on;
client_body_buffer_size 128k;
client_max_body_size 10m;
client_header_buffer_size 1k;
large_client_header_buffers 4 4k;
output_buffers 1 32k;
postpone_output 1460;
client_header_timeout 3m;
client_body_timeout 3m;
send_timeout 3m;
open_file_cache max=1000 inactive=20s;
open_file_cache_valid 30s;
open_file_cache_min_uses 5;
open_file_cache_errors off;
ssl_session_cache shared:SSL:10m;
init_by_lua '
local cjson = require "cjson"
--require "resty.redis"
';
log_format timed_combined '"$time_local" client=$remote_addr '
'method=$request_method request="$request" '
'request_length=$request_length '
'status=$status bytes_sent=$bytes_sent '
'body_bytes_sent=$body_bytes_sent '
'referer=$http_referer '
'user_agent="$http_user_agent" '
'upstream_addr=$upstream_addr '
'upstream_status=$upstream_status '
'request_time=$request_time '
'upstream_response_time=$upstream_response_time '
'upstream_connect_time=$upstream_connect_time '
'upstream_header_time=$upstream_header_time';
access_log /usr/local/openresty/nginx/logs/nginx-access.log timed_combined;
server {
set $home_url 'http://t.annalect.com.cn:80/';
set $default_redirect_url 'http://www.baidu.com/';
#set $redis_host '127.0.0.1';
#set $redis_port 6379;
set $resp_body "";
listen 80;
location /nginx_status {
stub_status ;
}
location ~ ^/tracking_(.+) {
lua_need_request_body on;
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
';
content_by_lua '
--local redis = require "resty.redis"
--local redis = redis:new()
--redis:set_timeout(1000)
--redis:connect(ngx.var.redis_host, ngx.var.redis_port)
--local res, err = redis:get(ngx.var[1])
local res, err = "http://www.baidu.com"
if not res or res == ngx.null then
return ngx.redirect(ngx.var.default_redirect_url, ngx.HTTP_MOVED_TEMPORARILY)
end
ngx.redirect(res, ngx.HTTP_MOVED_TEMPORARILY)
';
}
}
}