nginx反向代理缓存配置步骤详解

这里给出示例,并详解。

http {
[...]
[...]
 
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.centos.bz centos.bz;
    root /home/www.centos.bz/web;
    index index.php index.html index.htm;
    location / {
        proxy_pass http://127.0.0.1:8080;
        proxy_set_header  Host "www.centos.bz";
        proxy_set_header  X-Forwarded-For $proxy_add_x_forwarded_for;
        #开启反向代理缓存,并使用zone name为one的缓存。
        proxy_cache one;
        #设置状态码为200 302过期时间为10分钟
        proxy_cache_valid  200 302  10m;
        #设置状态码404的过期时间为1分钟
        proxy_cache_valid  404      1m;
    }
    #清除缓存
    location ~ /purge(/.*) {
        #允许的IP
        allow 127.0.0.1;
        deny all;
        proxy_cache_purge one $host$1$is_args$args;
    }
}
 
}
反向代理的缓存主要涉及以下几个命令:
proxy_cache_path proxy_cache_key proxy_cache proxy_cache_valid。
proxy_cache_path
这个是设置缓存的目录,语法如下:
proxy_cache_path path [ levels = levels ] keys_zone = name : size [ inactive = time ] [ max_size = size ] [ loader_files = number ] [ loader_sleep = time ] [ loader_threshold = time ]
可放置的上下文:
http
参数解释:
[ levels = levels ]:
设置缓存目录层数,如levels=1:2,表示创建两层目录缓存,最多创建三层。第一层目录名取proxy_cache_key md5的最后一个字符,第二层目录名取倒数2-3字符,如:

proxy_cache_key md5为b7f54b2df7773722d382f4809d65029c,则:
levels=1:2为/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
levels=1:2:3为/data/nginx/cache/c/29/650/b7f54b2df7773722d382f4809d65029c
keys_zone = name : size:

定义缓存区域名称及大小,缓存名称用于proxy_cache指令设置缓存放置在哪,如proxy_cache one,则把缓存放在zone名称为one的缓存区,即proxy_cache_path指定的具体位置。
proxy_cache_key
这个指令是设置以什么参数md5得到缓存的文件名,默认为$scheme$proxy_host$request_uri,即以协议、主机名、请求uri(包含参数)作md5得出缓存的文件名。
proxy_cache_key与下面的清缓存功能(purge cache)有很大关系。
可放置在上下文,http server location
proxy_cache
反向代理缓存设置指令,语法proxy_cache zone | off,默认为off。上下文:http server location。
可以放到指定location,这样匹配此location的url才被缓存。
proxy_cache_valid
设置指定状态码的缓存时间,语法proxy_cache_valid [ code ...] time。
另外,清缓存需要安装插件ngx_cache_purge,安装方法如下:
cd /tmp
wget http://labs.frickle.com/files/ngx_cache_purge-2.1.tar.gz
tar xzf ngx_cache_purge-2.1.tar.gz
cd /tmp
wget http://nginx.org/download/nginx-1.4.2.tar.gz
tar xzf nginx-1.4.2.tar.gz
cd nginx-1.4.2
./configure --prefix=/usr/local/nginx  --add-module=/tmp/ngx_cache_purge-2.1
make && make install

时间: 2024-11-05 12:26:53

nginx反向代理缓存配置步骤详解的相关文章

nginx下php-fpm安装配置步骤详解

从PHP 5.4 RC2开始,php-fpm已经转正了,不再被php团队标注为EXPERIMENTAL(实验性的东西)[2-3]   . 相对Spawn-FCGI,PHP-FPM在CPU和内存方面的控制都更胜一筹,而且前者很容易崩溃,必须用crontab进行监控,而PHP-FPM则没有这种烦恼. PHP5.3.3已经集成php-fpm了,不再是第三方的包了.PHP-FPM提供了更好的PHP进程管理方式,可以有效控制内存和进程.可以平滑重载PHP配置,比spawn-fcgi具有更多优点,所以被PH

php5.3.10的安装配置步骤详解

在linux中php安装配置与windows中有不小的区别了,在linux中几乎都是代码形式了,下面我们一起来看看php5.3.10的安装配置步骤详解,希望下文可帮助到各位. 下面以最新的php-5.3.10为例进行安装. wget http://cn.php.net/distributions/php-5.3.10.tar.gz tar -zxvf php-5.3.10.tar.gz cd php-5.3.10 ./configure --prefix=/usr/local/php --wit

mysql免安装版配置步骤详解

 这篇文章主要介绍了mysql免安装版配置步骤详解,提供了二个网友的安装方法,大家可以参考使用 1.准备工作   下载mysql的最新免安装版本mysql-noinstall-5.1.53-win32.zip,解压缩到相关目录,如:d: mysql-noinstall-5.1.53-win32.这个就是mysql的根目录了.   2.配置   在根目录下有几个文件如下:   my-small.ini (这是针对一个小内存(〈= 64MB)的系统,MySQL 只会被时不时地用一下,很重要的是 my

nginx 正向代理 缓存配置

问题描述 nginx 正向代理 缓存配置 我想用智能路由器上openwrt的nginx来缓存来自特定域名(如www.xxx.com)的响应数据(如图片或视频数据),应该怎么配置呢?这个应该属于正向代理并做缓存吧?共悬赏5C币

weblogic安全配置步骤详解

1.引言 前段时间Java的反序列化漏洞吵得沸沸扬扬,因工作原因需要对weblogic进行安全配置,网上关于weblogic的安全配置的内容都不是很全面,可能是因为weblogic已经比较成熟了吧.本文就总结一下在整个过程中遇到的一些坑,并给出正确的姿势. 2.密码复杂度及更改周期策略 默认在安装时,weblogic要求密码至少为8位,但是没有限制密码复杂度.因此需要在安装时手工设置复杂的密码,weblogic11g时设置如下的密码:"We8_Q7%*5@1@Oracle". WLST

nginx+smokeping安装配置步骤详解

smokeping是对IDC网络质量,稳定性等最好的检测工具,包括常规的 ping,dig,echoping,curl等,可以 监视 www 服务器性能,监视 dns 查询性能,监视 ssh 性能等.Smokeping是rrdtool的作者Tobi Oetiker的作品,所以底层也是 rrdtool 做支持.smokeping是一个很老的开源项目了,不过考虑到现网以下两方面的需求,感觉还是有必要部署的.1.针对虚拟化平台主机重启速度较快,普通的监控平台可能敏感度不够:2.业务和网络部门经常有对网

Nginx反向代理websocket配置实例_nginx

最近有一个需求,就是需要使用 nginx 反向代理 websocket,经过查找一番资料,目前已经测试通过,本文只做一个记录 复制代码 代码如下: 注: 看官方文档说 Nginx 在 1.3 以后的版本才支持 websocket 反向代理,所以要想使用支持 websocket 的功能,必须升级到 1.3 以后的版本,因此我这边是下载的 Tengine 的最新版本测试的 1.下载 tengine 最近的源码 复制代码 代码如下: wget http://tengine.taobao.org/dow

centos下Nginx安装配置步骤详解

nginx可以使用各平台的默认包来安装,本文是介绍使用源码编译安装,包括具体的编译参数信息. 正式开始前,编译环境gcc g++ 开发库之类的需要提前装好,这里默认你已经装好. ububtu平台编译环境可以使用以下指令 apt-get install build-essential apt-get install libtool centos平台编译环境使用如下指令 安装make: yum -y install gcc automake autoconf libtool make 安装g++:

Mac上搭建nginx+rtmp直播服务器的步骤详解_nginx

前言 相信大家都知道nginx是非常优秀的开源服务器,用它来做hls或者rtmp流媒体服务器是非常不错的选择,所以小编在网上整理了安装流程,现在分享给大家并且作备忘.有需要的朋友们可以参考学习,下面来一起看看吧. 一.安装Homebrow 已经安装了brow的可以直接跳过这一步. 执行命令 ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 如果已经安装过,而