cari

Rumah  >  Soal Jawab  >  teks badan

redis - java web怎么把页面放到缓存里让nginx直接读取

想实现这么一个页面静态化的方案:
nginx接受到请求之后先去redis或者memcache中取页面的缓存,如果缓存里没有再取请求action,action里把渲染好的页面缓存起来供下次访问使用。
求解答这个方案有可行性吗,怎么把渲染好的页面存放到缓存里?

伊谢尔伦伊谢尔伦2800 hari yang lalu708

membalas semua(1)saya akan balas

  • 阿神

    阿神2017-04-24 09:13:15

    Nginx mempunyai fungsi cache proksi, yang boleh menyimpan secara automatik kandungan yang dijana oleh hujung belakang seperti Tomcat sebagai halaman statik, dan masa tamat tempoh boleh ditetapkan secara automatik ini pada bahagian Java.

    Di sini kami mengambil cache fastcgi Nginx sebagai contoh, dan menggunakan PHP untuk memadam cache secara manual:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    <code>Nginx里的配置项:

    fastcgi_cache_path /png/nginx/1.5.7/ngx_fcgi_cache levels=1:2 keys_zone=WORDPRESS:512m inactive=1d max_size=1g;

    以下脚本要清除页面 www.example.com/sample-page 的缓存:

    /png/nginx/1.5.7/ngx_fcgi_cache/5/b6/abad4d0ad087b7eecaac98d0a2a08b65

    <?php

    $dir = '/png/nginx/1.5.7/ngx_fcgi_cache';

    $md5 = md5('GET://www.example.com/sample-page');

    $cache = $dir.'/'.substr($md5, -1, 1).'/'.substr($md5, -3, 2).'/'.$md5;

    @unlink($cache);</code>

    balas
    0
  • Batalbalas