日志分类:WEB

服务器网页缓存的深入分析

2008-07-30,星期三 | 分类:WEB, 系统管理 | 标签: | 106 views

这篇文章来自:http://blog.chinaunix.net/u/12479/showart_376995.html

Expires、Cache-Control、Last-Modified、ETag是RFC 2616(HTTP/1.1)协议中和网页缓存相关的几个字段。前两个用来控制缓存的失效日期,后两个用来验证网页的有效性。要注意的是, HTTP/1.0有一个功能比较弱的缓存控制机制:Pragma,使用HTTP/1.0的缓存将忽略Expires和Cache-Control头。我们 这里以Apache2.0服务器为例,只讨论HTTP/1.1协议。

Expires

Expires字段声明了一个网页或URL地址不再被浏览器缓存的时间,一旦超过了这个时间,浏览器都应该联系原始服务器。RFC告诉我们:“由于推断的失效时间也许会降低语义透明度,应该被谨慎使用,同时我们鼓励原始服务器尽可能提供确切的失效时间。”

对于一般的纯静态页面,如html、gif、jpg、css、js,默认安装的Apache服务器,不会在响应头添加这个字段。Firefox浏览器接受 到相应后,如果发现没有Expires字段,浏览器根据文件的类型和“Last-Modified”字段来推断出一个合适的失效时间,并存储在客户端。推 测出的时间一般是接受到响应时间后的三天左右。 全文阅读 »

CLOSE_WAIT生成原因

2008-07-30,星期三 | 分类:WEB, 系统管理 | 标签: | 103 views

原文地址:http://blog.csdn.net/eroswang/archive/2008/03/10/2162986.aspx
关闭socket分为主动关闭(Active closure)和被动关闭(Passive closure)两种情况。前者是指有本地主机主动发起的关闭;而后者则是指本地主机检测到远程主机发起关闭之后,作出回应,从而关闭整个连接。
其状态图如下图所示:

起初每个socket都是CLOSED状态,当客户端初使化一个连接,他发送一个SYN包到服务器,客户端进入SYN_SENT状态。 全文阅读 »

关于JavaScript的gzip静态压缩方法

2008-06-27,星期五 | 分类:WEB | 标签: | 111 views

一个页面减少10KB对于一个小网站来说,算不上什么,但对于大型站点来说,累计起来却是一个很大的流量……gzip压缩是一个有效可行的方法,但需要Apache的支持(Apache与IIS共用一个端口解决方法)。
传统的JS压缩(删除注释,删除多余空格等)提供的压缩率有时还是不尽不意,幸亏现在的浏览器都支持压缩传输(通过设置http header的 Content-Encoding=gzip),可以通过服务器的配置(如apache)为你的js提供压缩传输,或是appfuse中使用的 GZipFilter使tomcat也提供这种能力
现在的问题是这种动态的压缩会导致CPU占用率过高,现在我想到的解决辨法是通过提供静态压缩(就是将js预先通过gzip.exe压缩好)
一.下面描述在tomcat中的应用
1. 将prototype.js通过gzip.exe压缩保存成prototype.gzjs 2.设置header,我编写了一个简单的 AddHeadersFilter来将所有以gzjs结尾的文件增加设置header Content-Encoding=gzip web.xml中的配置 全文阅读 »

Nginx下实现gzip静态文件压缩

2008-06-27,星期五 | 分类:WEB, 工作日志 | 标签: | 123 views

最近客户报怨公司网站首页打开速度太慢,实际情况是打开首页一大堆css和js文件确实严重影响访问速度,特别prototype.js这个文件,光它就有120多k,而自打开首页后,访问其它页面速度还不错,就是因为后面将这些css和js文件都缓存了,而不至于影响速度。
于是想到压缩这些文件,搜索资料,参考网上这篇<<关于JavaScript的gzip静态压缩方法>>,静态压缩文件输出,提升访问速度,现在就拿prototype.js开刀先。
我没有使用gzip.exe这个软件,而是使用了另外一款开源压缩软件7-zip,压缩档案格式使用Gzip,压缩等级为极限压缩,嘿嘿,够狠,其它选项为默认,经此压缩,乖乖,122kb的prototype.js压缩后只有27Kb,效率为88%,爽!
好,下面整到服务器上去,不过文件名由prototype.js.gz改为prototype.gzjs,修改链接,因为服务器是nginx+jboss架构,jboss处理动态页面,nginx处理静态文件,为了保证nginx和jboss都能访问正常,所以要在两个软件中都添加gzjs的header,jboss不用说,参考<<关于JavaScript的gzip静态压缩方法>>即可,nginx则要修改两处,在虚拟主机配置段中添加:

location ~* ^.+.gzjs$ {
add_header  Content-Encoding  gzip;
gzip off;
}

另外再修改nginx的mime文件,在application/x-javascript js;中添加gzjs

application/x-javascript              js gzjs;

修改完成之后重启jboss和nginx即可,现在打开网站,感觉速度快了很多,如果将站点中所有的css和js文件甚至大的html等静态文件都经此整一下,网站访问速度想必大有改观,下面就看有没有办批量压缩了,go…

面向站长和网站管理员的Web缓存加速指南[翻译]

2008-06-26,星期四 | 分类:WEB | 103 views

原文(英文)地址: http://www.mnot.net/cache_docs/ 版权声明:署名-非商业性使用-禁止演绎 2.0

这是一篇知识性的文档,主要目的是为了让Web缓存相关概念更容易被开发者理解并应用于实际的应用环境中。为了简要起见,某些实现方面的细节被简化或省略了。如果你更关心细节实现则完全不必耐心看完本文,后面参考文档和更多深入阅读部分可能是你更需要的内容。

  1. 什么是Web缓存,为什么要使用它?
  2. 缓存的类型:
    1. 浏览器缓存;
    2. 代理服务器缓存;
  3. Web缓存无害吗?为什么要鼓励缓存?
  4. Web缓存如何工作:
  5. 如何控制(控制不)缓存:
    1. HTML Meta标签 vs. HTTP头信息;
    2. Pragma HTTP头信息(为什么不起作用);
    3. 使用Expires(过期时间)HTTP头信息控制保鲜期;
    4. Cache-Control(缓存控制) HTTP头信息;
    5. 校验参数和校验;
  6. 创建利于缓存网站的窍门;
  7. 编写利于缓存的脚本;
  8. 常见问题解答;
  9. 缓存机制的实现:Web服务器端配置;
  10. 缓存机制的实现:服务器端脚本;
  11. 参考文档和深入阅读;
  12. 关于本文档;

什么是Web缓存,为什么要使用它?

全文阅读 »

世界上第一台现代电脑六十岁啰!

2008-06-25,星期三 | 分类:WEB | 50 views

First Modern Computer Turns 60

[翻译:Judy/原文连接]


十年前的六月二十一日,世界上第一台现代电脑-至少根据某些说法-在英国曼彻斯特的一间实验室里诞生了,这台别名宝贝(Baby)的小规模实验机
(Small Scale Experimental Machine),是第一台具备类似于现代的RAM、能真正执行不同程序的电脑,不像它的前辈ENIAC和Colossus,输入不同的指令后,Baby能「就地」执行各种不同的任务(ENIAC和Colossus理论上也能执行不同程序,但却需要几天到几周的工作天,将电脑内的线路重新联机),Baby也是第一台最符合我们熟知的「电脑」的电脑。

在1948年的六月二十一日,Baby成功的完成一组指令,计算出质数间的最大公因子,也就是1。

以现代的标准来看,Baby的确过于原始,它的真空管记忆容量总共只能储存1024位的数据,比现代袖珍型计算器还少,执行一项简单的程序,也需要花上大约一个小时,相较之下,现代的电脑随便就有1GB(80位)的容量。

不过Baby算是随后出现的曼彻斯特马克一号(Manchester Mark I)和第一台商业化量产的电脑费伦蒂马克一号(Ferranti Mark I)的先驱。目前Baby的复制品正在曼彻斯特的科学与工业博物馆(Museum of Science and Industry)展出,让我们在此送上迟来的生日祝福吧。

Yahoo! Exceptional Performance team 的WEB优化规则

2008-06-25,星期三 | 分类:WEB | 54 views

Exceptional Performance

Yahoo!’s Exceptional Performance team evangelizes best practices for improving web performance. They conduct research, build tools, write articles and blogs, and speak at conferences. Their best practices center around the rules for high performance web sites.

Best Practices

The Exceptional Performance team has identified a number of best practices for making web pages fast. The list includes 34 best practices divided into 7 categories.

http://developer.yahoo.com/performance/

十大WordPress的SEO优化技巧

2008-06-03,星期二 | 分类:WEB | 48 views

WordPress系统本身,默认安装的情况下使用默认模板,实际上对搜索引擎并不友好,并没有针对搜索引擎进行很好的设计,下面我介绍一些技巧和方法可以使得WordPress能否对搜索引擎更为友好。  1、文章URL链接结构的优化

Permalink里面要包含postname.一般的服务器都支持mod_rewrite功能,使用这个功能可以优化Permalink(永久链 接),在Option-Permalink里的Common options里进行设置,我比较倾向于使用/%year%/%monthnum%/%postname%.html这种链接结构,一来链接目录只有两 级,利于索引,二来这种链接结构和Blogspot和Movable Type的链接结构一致,比较利于系统平滑迁移或切换。postname使用英文,如果是写英文Blog的话,系统会自动将标题的post slug做为postname.

2、文章Post Slug的优化

文章标题中最好包含文章最关键的关键字,不要使用一些没有意义的标题,对于英文Blog来讲,最好启用一个名叫SEO Slugs的插件,该插件能够自动将post slug中的the、in等“没用”的单词删除,有利于SEO. 全文阅读 »

用tmpfs加速nginx

2008-04-12,星期六 | 分类:WEB, 工作日志, 系统管理 | 82 views

mkdir /nginx_tmp
编辑/etc/fstab,加入

tmpfs                   /nginx_tmp              tmpfs   size=1024m,mode=1777        0 0

编辑/usr/local/nginx/conf/nginx.conf,将缓存目录均指向/nginx_tmp

client_body_temp_path      /nginx_tmp/client_body_temp;
proxy_temp_path            /nginx_tmp/proxy_temp;
fastcgi_temp_path          /nginx_tmp/fastcgi_temp;

此分区可视情况适当调整大小,此处设置为1G

Jboss管理不能登录

2008-04-12,星期六 | 分类:WEB, 工作日志 | 68 views

这个问题。原来需要在/conf/tomcat-users.xml中添加
<role rolename=”admin”/>
<role rolename=”manager”/>
<user username=”admin” password=”" roles=”admin,manager”/>
再重启下jboss用这个帐号登入就可以了

Pages: 1 2 3 Next