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 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体