nginx利用proxy_cache来缓存文件
有需要的朋友可参考 代码如下复制代码
user zhangy users;
worker_processes ;
error_log /var/vlogs/nginx_errorlog crit;
pid /var/vlogs/nginxpid;
#Specifies the value for maximum file descriptors that can be opened by this process
worker_rlimit_nofile ;
events
{
use epoll;
worker_connections ;
}
http
{
include mimetypes;
default_type application/octetstream;
#charset gb;
server_names_hash_bucket_size ;
client_header_buffer_size k;
large_client_header_buffers k;
client_max_body_size m;
sendfile on;
tcp_nopush on;
keepalive_timeout ;
tcp_nodelay on;
fastcgi_connect_timeout ;
fastcgi_send_timeout ;
fastcgi_read_timeout ;
fastcgi_buffer_size k;
fastcgi_buffers k;
fastcgi_busy_buffers_size k;
fastcgi_temp_file_write_size k;
//============
client_body_buffer_size k;
proxy_connect_timeout ;
proxy_read_timeout ;
proxy_send_timeout ;
proxy_buffer_size k;
proxy_buffers k;
proxy_busy_buffers_size k;
proxy_temp_file_write_size k;
proxy_temp_path /usr/local/nginx/proxy_temp;
/*levels设置目录层次
keys_zone设置缓存名字和共享内存大小
inactive在指定时间内没人访问则被删除在这里是天
max_size最大缓存空间*/
proxy_cache_path /usr/local/nginx/proxy_cache levels=: keys_zone=content:m inactive=d max_size=m;
//============等号中间要加的关键只要加上proxy_cache_path
gzip on;
gzip_min_length k;
gzip_buffers k;
gzip_;
gzip_comp_level ;
gzip_types text/plain application/xjavascript text/css application/xml;
gzip_vary on;
upstream myselfxtajmd {
server :;
server : weight=;
}
server
{
listen ;
server_name localhost;
index inde indexphp;
log_format access $remote_addr $remote_user [$time_local] "$request"
$status $body_bytes_sent "$http_referer"
"$http_user_agent" $http_x_forwarded_for;
access_log /var/log/testlog access;
location /
{
proxy_cache content; //根keys_zone后的内容对应
proxy_cache_valid d; //哪些状态缓存多长时间
proxy_cache_valid any d; //其他的缓存多长时间
proxy_cache_key $host$uri$is_args$args; //通过key来hash定义KEY的值
proxy_pass http://myselfxtajmd;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header XRealIP $remote_addr;
proxy_set_header XForwardedFor $proxy_add_x_forwarded_for;
}
//动态的放过
location ~ *(php|jsp|cgi)?$
{
proxy_set_header Host $host;
proxy_set_header XForwardedFor $remote_addr;
proxy_pass http://myselfxtajmd;
}
}
}
上面只是配置的部分内容反向代理的那部分没有放进去了参考linux下nginx反向代理实现负载均衡当我们浏览时在代理端就把图片缓存了不用到代理终端去缓存了可以节省资源缓存的内容放在你设置的proxy_cache_path路径下面看下图
nginx proxy_cache
第一层目录只有一个字符是由levels=:设置总共二层目录子目录名字由二个字符组成突然发现我在我的系统里面配置过varnishsquidapache和mod_cachenginx和proxy_cache他们都是可以对文件进行缓存不知道他们哪一个对文件的缓存效果最好呢?有空比较一下对了这种缓存这个博客里面都有的有兴趣的朋友可以看一下