网站性能优化中如何实现页面静态化, nginx+tomcat

问题描述

请教各位大牛一个问题: 现在的项目从客户端到webAPP 经过nginx+tomcat,经过压力测试,事务响应时间很长, 所以想着在nginx/tomcat加上静态页面的缓存, 但是大多文章说的主要是nginx上面使用proxy_cache. 请注意 我这里说的缓存不是针对静态文件(js,css,html,image等), 而是针对整张页面或者局部页面的缓存, 这就有一个问题, nginx不是serlvet容器对于jsp是不能解析的. 我现在的想法是: 1.项目代码上对出口的jsp进行过滤filter, 将jsp转化成html格式, 然后更新到nginx服务器的指定目录下 2.nginx上配置,对于所有请求先去之前指定的静态页面主目录去找有没有页面, 没有的话再去upstream去请求后端的webapp处理, 同样处理完之后经过filter转化成html在更新存放静态页面的目录. 请教各位大牛, 不知道我的想法是否正确, 还有什么正确的主流的的思路和建议,请不吝赐教.

解决方案

像你这个问题需要拆开分析。nginx做静态文件访问是很强,但是首先你要考虑生成静态文件后的代价:1.什么时候生成;2.什么时候更新;3.信息不及时会不会导致不良后果;4.因为你是生成物理html文件的,如果你们项目数据量很多、页面很多,最终生成的文件是否会很多、很大,这么多文件维护起来有没有难度。痛点:曾经做过访问结构统计,写xml。平常访问是没有问题,但在高并发下,你想死的心都有。打开文件不对,一看是前面还没写完,另外一个用户就访问了,又写,导致文件格式不对。建议:对项目进行拆分,检查数据库访问时间、程序处理时间、页面展示时间。看下响应时间长是因为哪里出的问题。 如果实在要缓存,建议数据库开启缓存,程序将数据缓存至内存中,前端服务器设置缓存,莫要去让程序判断是否写页面。 如果最终还是要写html。你的第二点就不可用,因为是程序主动生成html,例如:新闻类更新时,由编辑人员点击发布,此时可能就写了一个静态的html,而不是由用户去访问出发写html,避免高并发会出现的问题。文笔不好,第一次在iteye回答问题,如有疑问可私信,或者发我邮箱。
解决方案二:
如果你内存够大就不用转成HTML了,直接URL缓存,其实HTML加载也是耗时的,只是相对于动态页面来说强一些
解决方案三:
可尝试下Varnish
解决方案四:
只是关注而已
解决方案五:
可以用ehcache 可以在tomcat端缓存界面或者局部缓存 想过非常棒http://www.cnblogs.com/daxin/archive/2013/05/31/3111597.html可以自定义失效时间 非常灵活
解决方案六:
这个要分情况来看的吧.最简单的情况就是页面一旦生成就不会再被改变了,那这只需要在第一次访问的时候或者由后台线程去生成一次即可.如果是有改变的那就复杂一些了.1.有改变,但是不需要很实时的去展现这些改变.那你可以为这些已经生成的静态化页面由专门的线程去定时重新生成一下.2.有改变,需要马上看到结果.这里的话,我建议你不如直接利用缓存将数据进行缓存免去后台数据库的访问时间.这样你将获得的数据缓存在内存中,基本上就只剩下组装页面和响应的时间了,会大大加快请求处理速度的.
解决方案七:
你这个想法很好,顺便说一下,既然用到了nginx,nginx就能获取到html,不用filter了。nginx有一个模块srcache,把html缓存到memcache中。

时间: 2024-11-05 19:31:25

网站性能优化中如何实现页面静态化, nginx+tomcat的相关文章

yahoo网站性能优化的建议:Yahoo军规再度挖掘

文章描述:本来这是个老生常谈的问题,上周自成又分享了一些性能优化的建议,我这里再做一个全面的Tips整理,谨作为查阅型的文档,不妥之处,还请指正. 本来这是个老生常谈的问题,上周自成又分享了一些性能优化的建议,我这里再做一个全面的Tips整理,谨作为查阅型的文档,不妥之处,还请指正:如果你已经对yahoo这些优化建议烂熟于心,果断点这里 一. Yahoo的军规条例: 谨记:80%-90%的终端响应时间是花费在下载页面中的图片,样式表,脚本,flash等:详细的解释来这里查:http://deve

Asp.net 网站性能优化二则分享_实用技巧

随着后端优化空间越来越小,现在越来越多的网站更注重前端性能的优化,就是浏览器,http层面的优化,这里写两点最简单最有效的 asp.net网站优化技巧. 了解常见的网站性能优化技巧 首先我们要学一些优化网站性能和体验的理论和基础知识,雅虎已经帮我们总结好了,详见参考链接中的几篇文章,有好心人已经给翻译成中文了.这里面提到的一些技巧可操作性都很强,建议每一个网站开发人员都仔细学习并进行实践,可以说不了解这里面说的优化技巧,提升网站前端性能就无从谈起. 诊断网站性能 要想优化网站的前端性能,首先要查

asp.net小谈网站性能优化

当然,网站性能优化是多方面的,这里先谈一下这些天来的所获: 1.书写代码的习惯: 再复杂的逻辑,也是从最简单的开始.在书写代码的过程中,很多不好的规范都会影响网站的性能: 以下是整理出来的些许代码习惯: 1)字符串的比较 用 string.Empty 代替 " " 2)在遍历过程中,先定义好计数变量, 再遍历, 这样会减少每次遍历就分配一次内存空间: 复制代码 代码如下: int i; for( i=0; i<100;i++) { // codeing } 3)同样的,用 Str

用户体验设计:Logo与网站性能优化

网页制作Webjx文章简介:网站Logo标志的性能优化. 莫名的源起 – H1这里的H1不是H1N1中那令人不寒而栗H1,而是HTML中的一个标签,一个重构者日常工作中不可避免的一个标签,一个不能被忽视的标签,一个在HTML的标题中排名第一的标题,历史上有过很多的关于H1的探讨,也有人在Twitter上进行过H1辩论(en),虽然大家会有一些分歧,但是对于H1的重要性,大家都一种认同,追求者众多,追法各异,各有各的手段,各有各的目的,满足了才是王道. 捏造的主题 – Logo与网站性能优化谈到H

网站性能优化让SEO效果最大化

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 网站性能好坏直接影响用户体验.网站SEO做的再好,脱离了它一切皆为空谈.怎么去辨别一个网站性能的好坏呢?最简单的办法就是通过不同的网络来测试打开它的速度.网站性能好,打开网站速度快自然可以提高用户体验,也有利于蜘蛛的抓取,反之.不过一般只有上了一定规模的站点才会去考虑网站性能问题,一般的小型企业站可以忽略,只要保证服务器速度快就可以了. 据调

asp.net小谈网站性能优化_实用技巧

当然,网站性能优化是多方面的,这里先谈一下这些天来的所获: 1.书写代码的习惯: 再复杂的逻辑,也是从最简单的开始.在书写代码的过程中,很多不好的规范都会影响网站的性能: 以下是整理出来的些许代码习惯: 1)字符串的比较 用 string.Empty 代替 " " 2)在遍历过程中,先定义好计数变量, 再遍历, 这样会减少每次遍历就分配一次内存空间: 复制代码 代码如下: int i; for( i=0; i<100;i++) { // codeing } 3)同样的,用 Str

PHP网站页面静态化的生成方法介绍

在PHP网站开发中为了网站推广和SEO等需要,需要对网站进行全站或局部静态化处理,PHP生成静态HTML页面有多种方法,比如利用PHP模板.缓存等实现页面静态化,今天就以PHP实例教程形式讨论PHP生成静态页面的方法. 什么是PHP静态化 PHP静态化的简单理解就是使网站生成页面以静态HTML的形式展现在访客面前,PHP静态化分纯静态化和伪静态化,两者的区别在于PHP生成静态页面的处理机制不同. PHP伪静态教程:利用Apache mod_rewrite实现URL重写的方法 PHP生成静态HTM

使用ob系列函数实现PHP网站页面静态化_php实例

将PHP的执行页面预先转换成HTML,是所谓的PHP静态化方法之一. 其他还有模板替换法,opcache等方法. 静态化的作用: 提高网站的响应速度,降低服务器的负载: 用于搜索引擎的SEO: 利用PHP输出buffer直接写成html,定时后台定时扫一遍网站,是比较容易实现的网页静态化. 静态化之前: <?php for($i=0;$i<1000;$i++){ echo "bull<br>"; } ?> 静态化: <?php ob_start();

浅析网站SEO优化中关于站内优化的技巧

中介交易 http://www.aliyun.com/zixun/aggregation/6858.html">SEO诊断 淘宝客 云主机 技术大厅 对于网站SEO优化来说,相信许多站长们都略有了解.一般情况下,网站SEO优化主要分为站内优化与站外优化两个部份.对于站外优化来说,如果简单来说说,其实就是指网站的外链建设,常见的方法,例如:借助于友情链接,论坛,百度帖吧,目录提交,收藏夹,博客,以及分类信息等等.相信上述方法,对于略懂网站SEO优化的朋友来说,都很子解,在这里笔者也就不再一一