jonesche 2011-04-22 18:47
浏览 224
已采纳

web缓存的疑问,请大家帮忙

最近在学习nginx,很多问题不明白,请教各位大鸟们帮忙解答!!!
问题1 使用nginx做web缓存,举个例子:将响应的html缓存到内存里,下次相同的URL访问的时候,nginx服务器判断缓存中是否存在以及是否过期失效,如果存在不失效就返回此html。我的理解正确吗?是一定要保存到内存里吗?
过期时间在nginx里配置,会不会与html页面里的meta缓存设置冲突呢?

问题2:有段nginx的配置如下,不知道是什么意思
server{
....

location ~ .*.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}

}
它的意思将这些访问的资源缓存到nginx里吗?30天有效期?

问题3:我用httpwatch查看
如图:
[img]http://dl.iteye.com/upload/attachment/468976/0797e032-4c3a-3a03-87b1-6851203baecc.jpg[/img]
这个图片的result是Cache,是不是说明图片也缓存到nginx服务器里呢?
一般做web缓存,图片、js、css也放入缓存中呢?

问题4 一般网站有CMS生成html放到nginx服务器html目录下(我自己猜想的),这个与nginx缓存html没有关系吧?

我没做过大型网站,对此很多没有经验,希望大鸟们能踊跃发言!
某网站是 nginx+apache+resin,有经验的大鸟们,知道它们的任务是什么吗?我个人猜想是nginx做方向代理与web缓存,apache做负载均衡,不知道对不对,。。。。。

  • 写回答

2条回答 默认 最新

  • iteye_20470 2011-04-23 10:49
    关注

    问题1 ,NGINX 将缓存放在proxy_cache 文件中

    proxy_cache_path /se/cache levels=1:2 keys_zone=cache_one:200m inactive=1d max_size=3g;

    NGINX更依靠ETAG/Cache-Control/Expires/Last-Modified 这样的HTTP head 来控制 缓存的生命期

    问题2:

    expires 30d; 是告诉浏览器,三十天内不用再来获取资源

    问题3:这个CACHE 是浏览器内部的cache。

    问题4:
    CMS 将 动态内容用文件保存下来,是在没有外部缓存的情况下的做法。
    NGINX 的缓存 控制太复杂,客户端可以强制透过缓存获取内容,给网络带来不安全因素。我现在就吧访问量大的页面,比如首页静态化,极大地提高了抗压能力。

    nginx完全可以做做代理、web缓存、做负载均衡,我现在就是 NGINX + RESIN 直接使用。
    估计原来是APACHE+RESIN,APACHE做静态文件访问用。增加NGINX 只做了负载均衡。
    也算是对原有结构改变较小的方案。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题
  • ¥15 如何用Python爬取各高校教师公开的教育和工作经历
  • ¥15 TLE9879QXA40 电机驱动
  • ¥20 对于工程问题的非线性数学模型进行线性化