我的日常

登录/注册
您现在的位置:论坛 盖世程序员(我猜到了开头 却没有猜到结局) 运维优化 > 阿里云Nginx整合Tomcat实现静态文件缓存
总共48086条微博

动态微博

查看: 4142|回复: 1

阿里云Nginx整合Tomcat实现静态文件缓存

[复制链接]
admin    

1244

主题

544

听众

1万

金钱

管理员

  • TA的每日心情

    2021-2-2 11:21
  • 签到天数: 36 天

    [LV.5]常住居民I

    管理员

    跳转到指定楼层
    楼主
    发表于 2015-09-07 19:30:37 |只看该作者 |倒序浏览
    前几篇有讲到 Nginx相对于Tomcat处理静态文件的效率差距是很大的,这与Nginx的内部实现机制有很大关系。
    详见:Nginx处理静态数据的性能为什么如此吊

    新建:proxy.conf
    1. proxy_redirect          off;
    2. proxy_set_header        Host $host;
    3. proxy_set_header        X-Real-IP $remote_addr; #获取真实IP
    4. proxy_set_header        X-Forwarded-For   $proxy_add_x_forwarded_for; #获取代理者的真实ip
    5. client_max_body_size    10m; #允许客户端请求的最大单文件字节数
    6. client_body_buffer_size 128k;  #缓冲区代理缓冲用户端请求的最大字节数
    7. proxy_connect_timeout   600;  #nginx跟后端服务器连接超时时间(代理连接超时)
    8. proxy_send_timeout      600; #后端服务器数据回传时间(代理发送超时)
    9. proxy_read_timeout      600; #连接成功后,后端服务器响应时间(代理接收超时)
    10. proxy_buffer_size       64k; #设置代理服务器(nginx)保存用户头信息的缓冲区大小
    11. proxy_buffers           4 32k; #proxy_buffers缓冲区,网页平均在32k以下的设置
    12. proxy_busy_buffers_size 64k;  #高负荷下缓冲大小(proxy_buffers*2)
    13. proxy_temp_file_write_size 64k; #设定缓存文件夹大小,大于这个值,将从upstream服务器传
    14. proxy_temp_path /home/temp_dir;  
    15. proxy_cache_path /home/cache levels=1:2 keys_zone=cache:50m inactive=20m max_size=30g;

    16. proxy_cache_valid  200 304 301 302 8h;
    17. proxy_cache_valid  404 1m;
    18. proxy_cache_valid  any 2d;
    19. proxy_cache_key    $host$uri$is_args$args;
    复制代码
    nginx.conf 配置文件http模块中加入   :

    1. include       proxy.conf;
    复制代码

    server模块 中加入一下配置 对静态文件进行缓存:

    1. location ~ .*.(css|png|gif|jpg)$
    2.         {
    3.             proxy_pass http://localhost:8080;
    4.             proxy_cache cache;
    5.             add_header Nginx-Cache $upstream_cache_status;#统计缓存命中
    6.             proxy_set_header Accept-Encoding 'gzip';#强制浏览器
    7.             expires 30d;
    8.         }
    复制代码
    重启Nginx  切换到sbin目录 ./nginx -s reload 平滑重启。


    F12 谷歌浏览器  静态文件css被缓存命中。英语自行补脑~~~

    但是这时候又有童鞋会问了,如果我修改了某个静态网页,但是服务器还是会读取原来缓存的数据,总不能等到缓存时间到期吧?


    当然方法是有的、有些人可能会想、直接删除缓存目录就是了,但是当你打开缓存目录你会觉得这是一个悲剧,你都不知道删哪一个,缓存文件根本就不是根据你的静态文件名字生成的。


    好~方法总是有的,比如安装ngx_cache_purge模块。
    好~教程总是有的,比如灯油时间加上~~~





    科帮网 1、本主题所有言论和图片纯属会员个人意见,与本社区立场无关
    2、本站所有主题由该帖子作者发表,该帖子作者与科帮网享有帖子相关版权
    3、其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和科帮网的同意
    4、帖子作者须承担一切因本文发表而直接或间接导致的民事或刑事法律责任
    5、本帖部分内容转载自其它媒体,但并不代表本站赞同其观点和对其真实性负责
    6、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意
    7、科帮网管理员和版主有权不事先通知发贴者而删除本文


    JAVA爱好者①群:JAVA爱好者① JAVA爱好者②群:JAVA爱好者② JAVA爱好者③ : JAVA爱好者③

    szy    

    8

    主题

    0

    听众

    138

    金钱

    三袋弟子

    该用户从未签到

    沙发
    发表于 2017-06-05 17:21:28 |只看该作者
    admin 这些个技术帖子都是你发布的吗?你的技术水平好高啊
    回复

    使用道具 举报

    快速回复
    您需要登录后才可以回帖 登录 | 立即注册

       

    关闭

    站长推荐上一条 /1 下一条

    发布主题 快速回复 返回列表 联系我们 官方QQ群 科帮网手机客户端
    快速回复 返回顶部 返回列表