nginx反向代理的缓存

原创 2017年11月11日 22:10:42

一、说明

Nginx实现缓存功能
  缓存数据分为两部分(索引,数据):
    1、存储数据的索引,存放在内存中;
    2、存储缓存数据,存放在磁盘空间中;
  Nginx实现缓存是通过代理缓存pxory_cache
  模块
    ngx_http_proxy_module模块
  常用的选项有
    proxy_cache_path
      说明
        proxy_cache_path定义一个完整的缓存空间
        指定缓存数据的磁盘路径、索引存放的内存空间以及一些其他参数,如缓存删除策略。
        注意,该选项只能定义在http块上下文中。
      例
        proxy_cache_path /data/cache levels=1:2 keys_zone=web:10m max_size=1G inactive=10;
        缓存数据存储在/data/cache目录中;
      选项
        levels
          配置在该目录下再分两层目录,一层1个随机字符作为名称,二层2个随机字符作为名称,levels最多三层,每层最多两个字符,这是为了加快访问文件的速度;最后使用代理url的哈希值作为关键字与文件名,一个缓存数据如下:/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c;
        keys_zone
          用来为这个缓存区起名,并设置大小。
          指定名称为web,这个名称后面proxy_cache需要引用
          而10m就是内存空间的大小;
        max_size
          指定最大缓存数据磁盘空间的大小;
        inactive
          在inactive指定的时间内,未被访问的缓存数据将从缓存中删除。
    proxy_cache
      proxy_cache用来引用上面proxy_cache_path定义的缓存空间,现时打开缓存功能
      例:
        proxy_cache web; #引用上面定义上的缓存空间,同一缓存空间可以在几个地方使用
    proxy_cache_valid
      proxy_cache_valid设置不同响应代码的缓存时间
      例
        proxy_cache_valid 200 302 10m;
        proxy_cache_valid 404 1m;

这里写图片描述

二、配置文件

三个步骤:新建缓存、打开缓存、缓存设置
如果要缓存整个页面,需要在代码中进行设置

/usr/local/tenginx/conf]$ cat nginx.conf
# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/

user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;

# Load dynamic modules. See /usr/share/nginx/README.dynamic.
include ../modules/*.conf;

events {
    worker_connections 1024;
}

http {
    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile            on;
    tcp_nopush          on;
    tcp_nodelay         on;
    keepalive_timeout   65;
    types_hash_max_size 2048;

    include             mime.types;
    default_type        application/octet-stream;

        #新建缓存
        proxy_cache_path /data/cache levels=1:2 keys_zone=nginx:20M max_size=2G  inactive=5;
        #为缓存数据添加头部信息
        add_header muzigan-Cache "$upstream_cache_status form $server_addr";

        upstream static_server {
                server 192.168.17.175:80 weight=5;
                server 192.168.17.176:80 weight=3;
                check interval=3000 rise=2 fall=5 timeout=2000 type=http;
                check_http_expect_alive http_2xx http_3xx;
        }


    server {
        listen       80 default_server;
        server_name  _;


        location ~ ^/images {
                index index.php index.html;
                proxy_pass http://static_server;
                #开启缓存
                proxy_cache nginx;
                #缓存设置
                proxy_cache_valid 200 301 302 2m;
        }
    }

}
版权声明:本文为博主原创文章,未经博主允许不得转载。

NGINX反向代理缓存

反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时...
  • lmy_1
  • lmy_1
  • 2016年10月11日 20:09
  • 658

Nginx反向代理缓存配置

这里给出示例,并详解。 http { [   proxy_cache_path  /data/nginx/cache/one  levels=1:2   keys_zone=one...
  • kobejayandy
  • kobejayandy
  • 2014年07月23日 23:42
  • 1892

用Nginx做反向代理并缓存静态文件

Nginx缓存静态文件
  • sheismylife
  • sheismylife
  • 2013年11月13日 15:41
  • 8454

nginx反向代理+页面缓存

在一次cdn排错过程中,发现可以利用nginx的页面缓存功能+dnspod来自己搭建cdn,来节省一定的成本,当然效果不如第三方的cdn效果好。因此自己先搭建了nginx页面缓存来测试一下。 先介绍...
  • yanggd1987
  • yanggd1987
  • 2014年06月24日 14:18
  • 1893

nginx 反向代理,动静态请求分离,proxy_cache缓存及缓存清除

一,nginx反向代理配置      #tomcat   显然就是用户访问www.wolfdream.com(需要设置本地localhost,将www.wolfdream.com指向ngin...
  • sgear
  • sgear
  • 2014年09月29日 14:42
  • 1384

CentOS5.5 Nginx1.6 反向代理-缓存-gzip

(1)安装依赖软件pcre-devel和libevent [root@bogon nginx]# yum install pcre-devel  libevent  openssl (2)安装...
  • dingsai88
  • dingsai88
  • 2015年02月27日 15:40
  • 991

rewrite、nginx proxy反向代理和缓存

实验环境 网关  classroom  172.25.8.254 workstation 172.25.8.9 server a-j eth0 172.25.8.10- 外网 eth1 ...
  • lihuaichen
  • lihuaichen
  • 2016年09月10日 13:59
  • 2368

Nginx + Apache 配置反向代理和静态资源缓存

转自:http://www.icultivator.com/p/9443.html Nginx处理静态内容是把好手,Apache虽然占用内存多了点,性能上稍逊,但一直比较稳健。倒是Nginx...
  • zhang_Red
  • zhang_Red
  • 2015年01月20日 20:17
  • 4015

【Linux】Nginx反向代理/缓存配置

http { proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=STATIC:10m inactive=24h ...
  • dzxlovelar
  • dzxlovelar
  • 2017年04月13日 11:01
  • 247

Nginx实现负载均衡与Nginx缓存功能

目录 一、Nginx是什么二、Nginx实现反向代理 2.1 正向代理和反向代理2.2 nginx实现反向代理2.3 nginx实现负载均衡 三、tengine tengine实现...
  • fashion138
  • fashion138
  • 2017年12月04日 14:47
  • 95
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:nginx反向代理的缓存
举报原因:
原因补充:

(最多只允许输入30个字)