nginx _lua (缓存,proxy)

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

时间: 2024-12-11 18:35:43

nginx _lua (缓存,proxy)的相关文章

Nginx配置缓存,提高网页访问速度

Nginx自带的缓存,配置起来非常方便,对应静态文件(js, css, swf, png,jpg等等),或者可以缓存的页面.目前在阿里云上买的ECS,运营印象网盘搜索 ,就采用Nginx的缓存.具体配置请看下面代码: # proxy缓存临时文件的大小 proxy_temp_file_write_size 256k; proxy_temp_path ~/nginx/temp; proxy_cache_path ~/nginx/cache levels=1:2 keys_zone=cache_one

nginx之缓存篇

关于nginx的缓存,常用的可以分为两大类: (1)缓存到客户本地浏览器 (2)缓存到服务器本地 关于第一种,缓存到客户本地浏览器[浏览器上常看到的add_header Cache-Control "public";] 在服务端设置静态文件的expire参数是指 客户的本地浏览器缓存设置.正值  expire date = 当前时间 + 设置的time时间负值 不缓存 关于第二种,缓存到服务器本地 使用PROXY_CACHE 原理: 把热点文件分层缓存.一般使用时将CACHE目录放置于

nginx proxy_cache缓存详解

目录 1. 关于缓冲区指令 1.1 proxy_buffer_size 1.2 proxy_buffering 1.3 proxy_buffers 1.4 proxy_busy_buffers_size 1.5 proxy_max_temp_file_size 1.6 proxy_temp_file_write_size 1.7 缓冲区配置实例 2. 常用配置项 2.1 proxy_cache_path 2.2 proxy_temp_path 2.3 proxy_cache 2.4 proxy_

Nginx代理缓存功能

Nginx代理缓存功能      Nginx缓存主要是用于减轻后端服务器的负载,提高网站并发量,提升用户体验度. 注意:Nginx反向代理的缓存功能是由ngx_http_proxy_module提供,在使用缓存功能时务必要nginx支持该模块.可能有些选项的不支持Nginx的版本,具体看官方文档: http://nginx.org/en/docs/http/ngx_http_proxy_module.html 后端服务器可能无法承受负载为了更好的提升用户体验环境介绍 服务器IP 服务器角色 19

用nginx图片缓存服务器

用nginx图片缓存服务器 图片的存储硬件 把图片存储到什么介质上? 如果有足够的资金购买专用的图片服务器硬件或者 NAS 设备,那么简单的很: 如果上述条件不具备,只想在普通的硬盘上存储,首先还是要考虑一下物理硬盘的实际处理能力.是 7200 转的还是 15000 转的,实际表现差别就很大.是选择 ReiserFS 还是 Ext3 ,怎么也要测试一下吧? 创建文件系统的时候 Inode 问题也要加以考虑,选择合适大小的 inode size ,在空间和速度上做取舍,同时防患于未然,注意单个文件

Nginx content cache Nginx内容缓存

原文地址:http://nginx.com/resources/admin-guide/caching/ Nginx content cache Nginx内容缓存 This chapter describes how to enable and configure caching responses received from proxied servers. When caching is enabled NGINX saves responses in the cache on the d

Nginx代理缓存加速服务器

Nginx缓存概述 提供与Squid类似的缓存,把URL以及相关信息当成key,用MD5编码哈希后,把数据文件保存在硬盘上,并且只能为指定的URL或者状态码设置过期时间,并不支持类似 squid的purge命令来手动清除指定缓存页面,但是可以通过第三方的ngx_cache_purge来清除指定的URL缓存Nginx的缓存加速功能是由proxy_cache(用于反向代理和静态缓存)和fastcgi_cache(PHP动态缓存)两个功能模块完成 1.proxy_cache原理 2.Nginx缓存特点

centos7.4 搭建nginx反向缓存代理

nginx可以实现基于硬盘缓存的反向代理服务通过proxy_cache和fastcgi_cache两个功能模块完成配置 ----- 本例:nginx反向代理服务器192.168.80.81web服务器192.168.80.82win7客户机 192.168.80.79 -----### web服务器192.168.80.82 配置:安装简单的httpd,提供web服务即可 -----### nginx反向代理服务器192.168.80.81配置:1.上传反向代理插件.软件和解压:tar xzvf

网站集群架构实战(LVS负载均衡、Nginx代理缓存、Nginx动静分离、Rsync+Inotify全网备份、Zabbix自动注册全网监控)--技术流ken

前言 最近做了一个不大不小的项目,现就删繁就简单独拿出来web集群这一块写一篇博客.数据库集群请参考<MySQL集群架构篇:MHA+MySQL-PROXY+LVS实现MySQL集群架构高可用/高性能-技术流ken>下面是项目的一些简单介绍. WEB集群项目简介 随着网站访问量的激增,势必会导致网站的负载增加,现需求搭载一套高性能,高负载,高可用的网站集群架构以保障网站的持续.高效.安全.稳定的运行. 针对以上需求,我们采用了如下的技术: 使用负载均衡技术来实现网站请求的调度分发,减小后端服务器