nginx缓存配置

Nginx缓存配置

此内容大部分为转载,如有冲突请见谅。

 

worker_processes  8;

worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

worker_rlimit_nofile 120000;

更改worker进程的最大打开文件数限制。如果没设置的话,这个值为操作系统的限制。设置后你的操作系统和Nginx可以处理比“ulimit -a”更多的文件,所以把这个值设高,这样nginx就不会有“too many open files”问题了。

 

events {

    use epoll; 选用epoll模型

    worker_connections  65535;单个进程并发连接数

}

 

http {

    include       mime.types;

    default_type  application/octet-stream;

    sendfile        on;

    tcp_nopush     on;

    server_tokens  off;

    keepalive_timeout  65;

 

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '

                      '$status $body_bytes_sent "$http_referer" '

                      '"$http_user_agent" "$http_x_forwarded_for" '

                      '$connection $upstream_addr '

                      'upstream_response_time:$upstream_response_time request_time:$request_time';

    

proxy_cache_path /data/nginx/proxy_cache_path levels=1:2 keys_zone=cache:128m inactive=7d max_size=50g use_temp_path=off;

#proxy_cache_path 本地路径,用来设置Nginx缓存资源的存放地址

 

#levels=1:2  默认所有缓存文件都放在同一个/path/to/cache下,但是会影响缓存的性能,因此通常会在/path/to/cache下面建立子目录用来分别存放不同的文件。假设levels=1:2Nginx为将要缓存的资源生成的keyf4cd0fbc769e94925ec5540b6a4136d0,那么key的最后一位0,以及倒数第2-36d作为两级的子目录,也就是该资源最终会被缓存到/path/to/cache/0/6d目录中

 

#keys_zone  在共享内存中设置一块存储区域来存放缓存的keymetadata(类似使用次数),这样nginx可以快速判断一个request是否命中或者未命中缓存,1m可以存储8000key10m可以存储80000key

 

#inactive  未被访问文件在缓存中保留时间,本配置中如果60分钟未被访问则不论状态是否为expired,缓存控制程序会删掉文件。inactive默认是10分钟。需要注意的是,inactiveexpired配置项的含义是不同的,expired只是缓存过期,但不会被删除,inactive是删除指定时间内未被访问的缓存文件

 

#max_size  最大cache空间,如果不指定,会使用掉所有磁盘空间,当达到配额后,会删除最少使用的cache文件

 

#use_temp_path   如果为off,则nginx会将缓存文件直接写入指定的cache文件中,而不是使用temp_path存储,official建议为off,避免文件在不同文件系统中不必要的拷贝

    proxy_ignore_headers X-Accel-Expires Expires Cache-Control Set-Cookie;

 

        upstream colorzb {

                server 192.168.6.101:18080;

}

#上面这个代理,是我自己本地Tomcat端口。

        server {

        listen       80;

        server_name  localhost;

                          root   html;

                          index  index.html index.htm;

                location / {

                        proxy_pass http://colorzb;

                        proxy_set_header Host $host;

                        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

                        proxy_set_header X-Real-IP $remote_addr;

                }

 

                location ~ /purge(/.*) {

                         allow 127.0.0.1;

                         deny all;

                         proxy_cache_purge cache $host$1$is_args$args;

                }

#location ~ /purge(/.*) {

#                         allow 127.0.0.1;

#                         deny all;

#                         proxy_cache_purge cache $host$1$is_args$args;

#                }

这个location用于清空缓存,需编译第三方模:ngx_cache_purge-2.3.tar.gz

使用方法就是如果你想清空某个静态资源的缓存,本地访问http://192.168.1.1.com/purge/123.png

 

 

                 location ~ .(js|css|htm|html|gif|jpg|jpeg|png|bmp|swf|ioc|rar|zip|txt|xls|mp3|wma)$ {

                         proxy_cache cache;                   proxy_cache_valid 200 304 302 5d;

                         proxy_cache_valid any 7d;

                         proxy_cache_key $host$uri$is_args$args;

                         add_header X-Cache '$upstream_cache_status from $host';

                         proxy_pass http://colorzb;

                         expires 30d;

                }

#proxy_cache cache;

启用proxy cache,并指定key_zone。另外,如果proxy_cache off表示关闭掉缓存

#proxy_cache_valid 200 304 302 5d;

200/304/302状态码的缓存5

#proxy_cache_valid any 7d;  

除了上面那些状态码的,缓存7

#proxy_cache_key $host$uri$is_args$args;  

以域名、URI、参数组合成Web缓存的Key值,Nginx根据Key值哈希,存储缓存内容到二级缓存目录内

#add_header X-Cache '$upstream_cache_status from $host';

增加一个header字段方便在浏览器查看是否击中缓存(生产中可注释),其实就是测试时候方便检测是否成功做出缓存功能

#proxy_pass http://colorzb;

代理,这个不用解释了。。。。。。。。我这里就是代理到Tomcat上,只要是在Tomcat上出来的静态资源全都缓存到本地。

#expires 30d;

浏览器中缓存30

#proxy_next_upstream http_502 http_504 error timeout invalid_header;

#如果后端的服务器返回502504、执行超时等错误,自动将请求转发到upstream负载均衡池中的另一台服务器,实现故障转移

 

        error_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值