博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HTTP--http之Nginx缓存(九)
阅读量:6371 次
发布时间:2019-06-23

本文共 2018 字,大约阅读时间需要 6 分钟。

目录结构

nginx

clipboard.png

test.conf
proxy_cache_path cache levels=1:2 keys_zone=my_cache:10m;    server {        listen       80;        server_name  test.com;        location / {            proxy_cache my_cache;            proxy_pass http://127.0.0.1:8888;            proxy_set_header Host $host;        }    }

本地

server.js
max-age=20用于设置服务器的缓存
const http = require('http');const fs = require('fs');const wait = (seconds) => {    return new Promise((resolve,reject) => {        setTimeout(() => {            resolve()        },seconds * 1000)    })}http.createServer(function(req, res) {    console.log('request come', req.headers.host);    if (req.url === '/') {        const html = fs.readFileSync('test.html', 'utf8');        res.writeHead(200, {        })        res.end(html)       }    if(req.url === '/data'){        res.writeHead(200, {            'Cache-Control':'max-age=20'        })        wait(2).then(() => {            res.end('success')         })    }}).listen(8888)console.log('server start at port 8888')
test.html
    
Document
this is content,

运行

  1. 第一次请求,等了2秒才显示content
  2. 刷新,不用等待,直接显示
  3. 等待20秒,请求2秒才显示

clipboard.png

请求头

s-maxage=20

用于设置nginx的缓存

  1. 第一次请求,等了2秒才显示content
  2. 刷新,不用等待,直接显示
  3. 等待20秒,请求2秒才显示
if(req.url === '/data'){        res.writeHead(200, {            'Cache-Control':'max-age=2,s-maxage=20;'        })        wait(2).then(() => {            res.end('success')         })    }

private

每次请求,等了2秒才显示content

if(req.url === '/data'){        res.writeHead(200, {            'Cache-Control':'max-age=2,s-maxage=20,private;'        })        wait(2).then(() => {            res.end('success')         })    }

验证缓存

除了url相同外,还有别的判断缓存的东西

server.js
if(req.url === '/data'){        res.writeHead(200, {            'Cache-Control':'s-maxage=200;',            'Vary':'X-Test-Cache'        })        wait(2).then(() => {            res.end('success')         })    }
test.html
    
Document
this is content,

由于每次X-Test-Cache都不同,所以并不会缓存

clipboard.png

clipboard.png

转载地址:http://gnyqa.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
忘记root用户密码怎么办?
查看>>
esxi定时任务
查看>>
Scaffold-DbContext
查看>>
关于VMware Workstation主机列表问题求教
查看>>
配置管理小报101021:给ubuntu加监控
查看>>
qml文字滚动效果的封装,实现方式运用的qml中提供的动画效果,另一种实现方式也可以使用定时器修改控件的坐标来实现...
查看>>
标准C++实现任务队列
查看>>
jdbc url
查看>>
刷leetcode第704题-二分查找
查看>>
debug_backtrace() 函数生成一个 backtrace(追踪)
查看>>
第七天,还是盒子
查看>>
XAMPP软件包下载
查看>>
XXL-JOB初体验-ORACLE版
查看>>
沉思录:别人的棺材
查看>>
jersey + spring + mybatis + redis项目搭建
查看>>
PAT 1006 部分正确_另一种解法
查看>>
在Keil环境下使用JLink实现printf输出重定向至debug窗口
查看>>
postgres的\d命令不显示全部的用户表
查看>>
poj 3468 A Simple Problem with Integers
查看>>