`

Nginx配置反向代理时cache缓存的使用方法

 
阅读更多
原文地址:http://www.server110.com/nginx/201310/2414.html




nginx的反代理功能一直很强大,无奈过去没有很好的cache机制,在0.7.44版里新加入的proxy cache功能后,发展至今,这个功能已经很完善和稳定,感觉有种替代传统cache如squid的趋势啊。
配置一下,很简单,配合上nginx的规则过滤真的很强大啊,简单http部分配置如下:
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
#### proxy_cache_path 指令指定缓存的路径和一些其他参数,缓存的数据存储在文件中。缓存的文件名和key为代理URL的MD5 码。levels参数指定缓存的子目录数,所有活动的key和元数据存储在共享的内存区域中,这个区域用keys_zone参数指定,keys_zone指定缓存的名字和共享内存大小,如果在inactive参数指定的时间内缓存的数据没有被请求则被删除,默认inactive为10分钟。cache manager进程控制磁盘的缓存大小,在max_size参数中定义,超过其大小后最少使用数据将被删除。
    proxy_cache_path /www/ng_cache levels=1:2 keys_zone=tmp_cache:1000m inactive=1d max_size=10000m;
    upstream backend {
        server 10.0.8.1:80
    }
    server {
        listen       80;
   server_name  localhost;
#### proxy_temp_path 必须和 proxy_cache_path 在同一分区
        proxy_temp_path /www/ng_tmp;
        location / {
            proxy_pass http://backend;
#### proxy_cache设置一个缓存区域的名称,一个相同的区域可以在不同的地方使用。在0.7.48后,缓存遵循后端的Cache-Control, Expires以及其他等。缓存依赖代理的缓冲区,如果proxy_buffers设置为off,将不会生效。
            proxy_cache tmp_cache;
#### proxy_cache_key 指定了包含在缓存中的缓存关键字(默认情况下服务器的主机名并没有包含到缓存关键字中)
            proxy_cache_key $host$uri$is_args$args;
#### 只对代码为200, 301和302的应答进行缓存10分钟
proxy_cache_valid 10m;
        }
#### purge缓存的设置
        location ~ /purge(/.*) {
           allow     127.0.0.1;
           deny               all;
#### proxy_cache_purge 设置要purge的缓存名字和cache_key(需和proxy_cache_key对应,不然会purge成404,要使用purge,需在编译nginx的时候加上第三方的cache_purge模块)
   proxy_cache_purge  tmp_cache $host$1$is_args$args;
        }
    }
}
但proxy_cache好像没办法跟squid样的在多个不同分区同时设置缓存目录和文件,不过nginx可以通过nginx的做法,我是先多设置几个proxy_cache_path指定不同分区取不同名字,然后起多个server监听不同端口缓存到不同的proxy_cache_path,再通过upstream的url_hash或者其他方式反代理过去,测试还是很好使的~~
分享到:
评论

相关推荐

    使用Nginx反向代理与proxy_cache缓存搭建CDN服务器的配置方法

    碰到问题:移动用户访问web服务器www.osyunwei.com很慢解决办法:1、在移动机房放置一台nginx反向代理服务器2、通过域名DNS智能解析,所有移动用户访问www.osyunwei.com时解析到nginx反向代理服务器3、nginx反向代理...

    Nginx服务器作反向代理时的缓存配置要点解析

    proxy_cache_path /data/nginx/cache/one levels=1:2 keys_zone=one:10m max_size=10g; proxy_cache_key $host$request_uri; server { server_name www.jb51.net jb51.net; root /home/www.jb51.net/web; index ...

    sfHttpHeaderCachePlugin:提供一种方法,以方便使用nginx或Varnish等反向代理进行缓存,使用cache.yml进行配置,以及使用备用缓存(例如sfApcCache或sfMemcacheCache)作为局部

    该插件旨在坐在Symfony的内置缓存配置之上,以提供一种通过使用响应发送良好的缓存头来配置反向代理(例如nginx或Varnish)缓存的方法。 它还使用Symfony固有的或与Symfony兼容的现有缓存机制(例如sfApcCache)为...

    Nginx启用proxy_cache缓存的方法

    顾名思义,proxy_cache 是用于 proxy 模式(一般也可称为反代)的缓存功能。本文介绍其基本用法。 proxy_cache 在 Nginx 配置的 http 段、server 段(location 段)中分别写入不同的配置。http 段中的配置用于定义 ...

    史上最牛逼的Nginx最佳实践教程从入门到精通

    18.搭建nginx反向代理用做内网域名转发 19.Nginx+keepalived+proxy_cache配置高可用Nginx群集和高速缓冲 20.Nginx最难一战 优化指南 21.确保Nginx安全的10大关键技巧 Nginx变量详解 Nginx模块与实践案例 提供了目前...

    Nginx服务器的安装与配置.pdf

    第6章 Nginx HTTP负载均衡和反向代理的配置与优化.pdf 第7章 Nginx的Rewrite规则与实例.pdf 第8章 Nginx模块开发.pdf 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块.pdf 第10章 Nginx在国内知名网站中的应用...

    nginx学习总结五(nginx反向代理)

    Nginx的Web缓存服务主要由proxy_cache相关指令集和fastcgi_cache相关指令集构成,前者用于反向代理时,对后端内容源服务器进行缓存,后者主要用于对FastCGI的动态程序进行缓存。两者的功能基本上一样。 Nginx 0.8.32...

    nginx 1.0.0配ngx_cache_purge实现高效的反向代理

    另外,在反向代理、负载均衡、健康检查、后端服务器故障转移、Rewrite重写、易用性上,Nginx也比Squid强大得多。这使得一台Nginx可以同时作为“负载均衡服务器”与“Web缓存服务器”来使用。–by 张宴 下载2011-05-...

    实战nginx-张宴

    10.1 Nginx反向代理与负载均衡类网站应用案例 10.2 Nginx+PHP类网站应用案例 10.3 Nginx视频点播类网站应用案例 第11章 Nginx的非典型应用实例 11.1 用HTTPS( SSL) 构建一个安全的Nginx Web服务器 11.2 采用Nginx...

    nginx缓存不起作用问题解决方法

    1. nginx不缓存原因 默认情况下,nginx是否缓存是由nginx缓存服务器与源服务器共同决定的,...2.1 方法一:修改程序或者源服务器web程序响应的header2.2 方法二:nginx代理直接加上如下一句: 代码如下:proxy_ignore_hea

    实战Nginx.取代Apache的高性能Web服务器

    10.1 Nginx反向代理与负载均衡类网站应用案例 10.2 Nginx+PHP类网站应用案例 第11章 Nginx的非典型应用实例 11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+...

    使用nginx缓存服务器上静态文件的设置方法

    nginx使用proxy_cache将用户的请求缓存到本地一个目录。下一个相同请求可以直接调取缓存文件,就不用去请求服务器了。 毕竟,IO密集型服务的处理是nginx的强项。 二、如何进行设置 先上个栗子: http{ proxy_...

    Nginx:取代apache的高性能服务器

    重点介绍了Nginx的配置优化方法、Nginx与PHP/Ruby/Python/JSP/Perl/Memcached的结合配置方法、Nginx HTTP反向代理与负载均衡的配置与优化、Nginx模块开发等,最后还分析了新浪的开源软件项目──基于Nginx的NCache...

    实战Nginx:取代Apache的高性能Web服务器 第一章

    10.1 Nginx反向代理与负载均衡类网站应用案例 10.2 Nginx+PHP类网站应用案例 第11章 Nginx的非典型应用实例 11.1 用HTTPS(SSL)构建一个安全的Nginx Web服务器 11.2 采用Nginx搭建FLV视频服务器 11.3 Nginx+...

    实战nginx.pdf

    实战nginx.pdf。主要内容包括:第1章 Nginx简介;第2章Nginx服务器安装与配置;第3章Nginx基本配置与优化;...第9章Nginx 的web缓存服务与新浪网的开源NCACHE模块;第10章Nginx 在国内知名网站中的应用案例..........

    Nginx全套学习指南

    第6章 Nginx HTTP负载均衡和反向代理的配置与优化 第7章 Nginx的Rewrite规则与实例 第8章 Nginx模块开发 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块 第10章 Nginx在国内知名网站中的应用案例 第11章 Nginx的...

    Nginx 手册

    6.Nginx HTTP负载均衡和反向代理的配置与优化 7.Nginx的Rewrite规则与实例 8.Nginx模块开发 9.Nginx的web缓存服务与新浪网的开源NCACHE模块 10.Nginx在国内知名站点中的应用案例 11.Nginx的非典型应用实例 12.Nginx...

    18个运维必知的Nginx代理缓存配置技巧(你都掌握了哪些呢)

    在教程中介绍的技术可以帮助新手和高级用户使用 Nginx 中包含的内容缓存功能,从而获得更好的性能。 概览 内容缓存位于客户端和源服务器 (upstream) 之间,并保存它看到的所有内容的副本。如果客户端请求缓存已存储...

    Nginx实战:取代Apache的高性能Web服务器

    第6章 Nginx HTTP负载均衡和反向代理的配置与优化 第7章 Nginx的Rewrite规则与实例 第8章 Nginx模块开发 第9章 Nginx的Web缓存服务与新浪网的开源NCACHE模块 第10章 Nginx在国内知名网站中的应用案例 第11章 Nginx的...

Global site tag (gtag.js) - Google Analytics