手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 免费部署 N8N 的 Zeabur 注册 | 登陆
浏览模式: 标准 | 列表分类:苹果相关

mod_pagespeed:傻瓜式前端优化

这个功能能,看上去不错,所以我转了一下,但,我目前还没有在自己的服务器上尝试,不过我也在想,如果这样操作了,图片怎么样被外站引用呢?这也是我考虑的原因。。。

原文:

曾经有位朋友自己做了个小网站,刚开始没什么人气,后来不小心把流量搞大了,用户抱怨访问缓慢,就让我帮忙看看哪里可以优化。那时 Steve Souders 老师的 YSlow 14条军规刚刚新鲜出炉,开宗明义第一句便是:网页性能 80% 消耗在前端。于是运用 Firefox+Firebug+YSlow 工具,轻松找到那些大图小用、过期时间太短、JS/CSS位置不正确、没有精简压缩的罪恶之源。前后只花一两周时间就把网站弄快了,好不得意。

今天 Google 发布的 mod_pagespeed for Apache 2,着实令人赞叹。原本需要一两周时间才能完成的前端优化工作,不到半个小时就能搞定,而且不用修改任何程序。现成的二进制安装包,下载来 直接装入系统,自动添加配置,重启 Apache 之后,一切前端问题自动优化。CDN服务商 Cotendo 已在其CDN服务器上部署mod_pagespeed以加速客户网站访问,图片文件大小经自动压缩可减少20%-30%,页面加载时间最多可缩短50%。 Go Daddy 也宣布将在其客户网站服务器上广泛部署mod_pagespeed。

 

mod_pagespeed 中有很多巧妙的设计,规避了以往必须要动复杂手术才能解决的问题。比如,它可以将图片文件的过期时间自动延长到一年,无论图片是否存在同名更新(即文件名 不变,图片内容随时可能改变,从而无法设置较长的过期时间)。假设网站原来的logo图片引用和HTTP header如下:

XML/HTML代码
  1. HTML tag   : <img src="images/logo.gif" />  
  2. HTTP header: Cache-Control:public, max-age=300  

经自动处理后,会变成:

XML/HTML代码
  1. HTML tag   : <img src="images/ce.c17941127d34679357baa1b36fb4ecc5.logo,g" />  
  2. HTTP header: Cache-Control:public, max-age=31536000  
mod_pagespeed 把原来的 logo.gif 转化为名称唯一的 ce.c17941127d34679357baa1b36fb4ecc5.logo,g ,并且将原先的过期时间300秒延长到31536000秒(一年)。mod_pagespeed 则仍然以此前定义的 TTL 300 秒为周期,定期检查图片是否更新,一旦图片内容发生改变,文件名也会相应变化,如此就不用管同名更新的问题了。

又如最常见且最难以控制的“大图小用”(80x80的图片框里塞一张1024x768的高清墙纸),mod_pagespeed是这样处理的:
XML/HTML代码
  1. <img src="images/Puzzle.jpg" width="256" height="192" />  
识别 IMG 标记中设置的宽度和高度值,自动缩放为相应大小和质量的图片:
XML/HTML代码
  1. <img src="images/ic.HASH.256x192xPuzzle,j.jpg" />  
还有很多有趣的功能,在 http://www.modpagespeed.com 可以看到实例展示。

mod_pagespeed 显然很适合中小规模网站使用,不用太多费力于前端改造,就能迅速成倍提升客户体验。但对于大规模商业网站来说,我认为还是要慎重,因为它实时过滤处理每一 次请求,存在不小的开销,而且作为beta版软件,即使要采用也得先进行充分测试。当然各种优化手段也可能有副作用,值得一提的 是,mod_pagespeed 的文档写得不错,条件、限制、风险都很明确,建议详细研究后再作抉择。
--EOF--

好象作者活在墙外,真让人痛苦,转载了他的文章吧,却不能给人家一个地址,所以贴上他的博客地址:http://hutuworm.blogspot.com/

Tags: apache, mod

Ubuntu10.10用Wine运行QQ2009

乘着最近在大战,我也贴个UBUNTU下装QQ的方法。只是这个QQ也是被改过的版本。爱用不用喽。。。。经测试,比linux占资源少一点,只是一些QQ附加的功能都可能没有了。。但是,能够聊天已经很不错了。
如果不用虚拟机,你连WEBQQ也用不了,有这样的工具,你还能怎么样?

先装wine,然后用winetricks装上这些常用的(其实前两天我的博客里介绍的wine就已经有介绍这样的了)。

XML/HTML代码
  1. winetricks msxml3 gdiplus riched20 riched30 vcrun6 vcrun2005sp1 

最后我COPY这段文字,请大家可以随便看:

XML/HTML代码
  1. 第四步:最后建议下载这个由深度出品的qq2009单文件版,主要是兼容性好(下载地址在文章最后给出)。  
  2. 下载解压后把“wineqq2009.exe”放到你的主目录,打开 Shell 来一句:  
  3. sudo chmod +x wineqq2009.exe  
  4. PS:加权限了才准许运行。  
  5. 最后将wineqq2009.exe复制到“.wine/dosdevice/c:/windows/system32/”文件夹里改为qq.exe。  
  6. 当然你也可以下载qq2008,但是由于和Ubuntu的输入法冲突,你只要在密码框打密码qq就会崩溃,当然也有解决办法。  
  7. 1.在一个空白文档里打下密码,然后再粘贴到密码框。  
  8. 2.用软键盘输入密码。  
  9. PS:记得把自动登录选上,下次就没有这么麻烦了^_^。  
  10. 所以,综合考虑,还是选这个qq2009单文件版好多了!  
  11. 第五步:加入WineQQ菜单。  
  12. 1.在”.wine/dosdevice/c:/windows/Program Files/Common Files”文件夹内右键选择新建文件夹Icon.下载QQ图标放到此处。  
  13. 2.右击菜单条,选择编辑菜单(E),新建项目位置如下图:  
  14.   
  15. 3.编辑项目图标就从第1点的位置找到图标,其它内容如下图: 
  16. 大小: 77.36 K
尺寸: 455 x 376
浏览: 2391 次
点击打开新窗口浏览全图
  17. 大小: 38.14 K
尺寸: 500 x 203
浏览: 2385 次
点击打开新窗口浏览全图

由于文件太大,我不提供下载,请到这里下载单文件版的QQ:http://killmind.com/blog/?post=188,我的文章也是从这里看的。(其实前两天我装wine的时候就尝试过所有版本的QQ了,但都是只能装不能启动。真的很郁闷。所以试了一下这个单文件的QQ),运行后,所有的聊天记录和信息文件存在mydocument目录下。和2009选择存在我的文档下结果是一样的。GOOD LUCK

后记:最后我看了这里:http://blog.chinaunix.net/u/27383/showart_689260.html,虽然它写的是2007版的QQ,但我测试了一下,2010的确实能用。虽然在安装的时候注册组件出了两次错,但确实是启动成功了(输密码的时候,请使用软键盘,否则,光标一移动到密码框就出错了。)

备份:

XML/HTML代码
  1. 我的安装环境是:RedHat.Enterprise.Linux.AS.V4.0.Update4 + wine-0.9.44.tar.bz2 + 珊瑚虫 2007v5.0b正式版  
  2.   
  3.   第一步,用root用户登陆Linux,挂载WindowsXP系统的C盘分区。  
  4.   
  5.   新建一个文件夹,作为WindowsXP系统C盘的挂载点,我选的是/mnt/WindowsXPc  
  6.   
  7.   mkdir /mnt/WindowsXPc  
  8.   创建挂载点  
  9.   mount -t ntfs /dev/sda1 /mnt/WindowsXPc  
  10.   
  11.   第二步,切换到普通用户登陆Linux,安装wine,因为用root用户安装wine时会提示错误。  
  12.   
  13.   打开终端,进入wine安装包所在的目录比如我放在了/opt  
  14.   cd /opt  
  15.   
  16.   解压wine安装包(我在这无法用命令解压,只好右键“用归档管理器打开”,不知道怎么回事?)  
  17.   
  18.   tar xjvf wine-0.9.44.tar.bz2  
  19.   进入解压得到的文件夹中  
  20.   cd wine-0.9.44  
  21.   运行wine自带的安装程序  
  22.   ./tools/wineinstall  
  23.   
  24.   接下来是极其漫长的等待,盯着编译状态中的终端长达10分钟以后,忍无可忍的我夺门而出 —— 吃晚饭去......安装过程会提示你选择"yes"或"no",全都选"yes",一路回车下去即可。安装的末尾阶段,终端中会提示你输入root用户的登陆密码,这就是安装即将结束的标志。如果一切顺利,安装结束以后会有"Goodlucky..." 的信息提示,这就说明wine已经成功安装到你的Linux上了。  
  25.   
  26.   为了接下来步骤的顺利进行,建议大家注销一下系统,以root用户名登录Linux。  
  27.   
  28.   第三步,因为之前我们已经挂载了WindowXP系统的C盘,这时便将WindowsXP系统 C:\Windows\system32 里的以下文件:mfc42.dll,msvcp60.dll,riched20.dll,riched32.dll 拷贝到Linux系统root用户目录下的 ./wine/drive_c/windows/system32 里,覆盖原有文件。  
  29.   
  30.   第四步,安装QQ。  
  31.   在终端中切换到QQ安装文件所在目录,比如我放在了/opt  
  32.   cd /opt  
  33.   以wine的方式运行QQ的安装文件  
  34.   wine IPQQ0750b.exe  
  35.   
  36.   接下来,我们便可以看到在Windows下常见的QQ安装窗口了,安装过程跟Windows下完全一样,一步一步“下一步”就行了。在这里我要提醒一点,QQ主程序的安装路径最好选默认值,系统会自动将其存放到Linux虚拟的WindowsXP C盘的相应位置中,这样可防止过后执行过程中出现一些未知的错误。  
  37.   
  38.   第五步,安装结束以后,把QQ安装目录 ./wine/drive_c/Program Files/Tencent/QQ 里的 TIMPlatform.exe 删除掉。  
  39.   
  40.   第六步,为QQ设置一下wine。  
  41.   在终端中输入下面的命令打开wine的配置文件  
  42.   winecfg  
  43.   
  44.   在"Applications"标签里添加QQ的主执行程序QQ.exe;在"Windows Version"下拉框中选择"WindowsXP";完成上述两步以后,点击“应用”,然后切换到"Libraries"标签,在"New override for library"下拉框中添加riched20和riched32,最后确定退出。  
  45.   
  46.   第七步,运行QQ。  
  47.   安装QQ时在桌面上创建了快捷方式,但那是.lnk格式文件,Linux下好像无法运行。我自己又重新创建了一个QQ启动器,但是双击没反应;若将启动器修改为“在终端中运行”,双击以后只弹出一个小窗口,而且瞬间就消失了,不知道怎么回事?最后我只能选择在终端中用命令行来打开QQ。  
  48.   
  49.   在终端中切换到QQ主程序安装目录  
  50.   cd ./wine/drive_c/Program Files/Tencent/QQ  
  51.   wine QQ.exe  
  52.   .  
  53.   .(一大堆信息,看不懂...)  
  54.   .  
  55.   
  56.   这个时候,熟悉的QQ登陆窗口就出现了!接下来的操作就不用我多说了吧,号码,密码,登陆,OK!  

Tags: ubuntu, qq, wine

winetricks Permisson denied解决方法

在UBUNTU下面想要使用WINDOWS下面的程序,除了用虚拟机,剩下的应该就是wine这种解决方案了。

wine目前支持的东西越来越多,但是,需要给wine安装很多win下面的库才行。于是,php研讨群中的lukin给了我一个常用的库的列表,让我安装:

$winetricks corefonts gdiplus gecko ie6 mdac28 mfc40 mfc42 msxml6 riched20 riched30 richtx32 vcrun6 vcrun2008

于是,兴冲冲的运行了一下,弹出这样的框:

XML/HTML代码
  1. gouki@gouki-desktop:~$ winetricks gdiplus gecko ie6 mdac28 mfc40 mfc42 msxml6 riched20 riched30 richtx32 vcrun6 vcrun2008  
  2. Executing wget -O WindowsXP-KB975337-x86-ENU.exe -nd -c --read-timeout=300 --retry-connrefused --header Accept-Encoding: gzip,deflate http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe  
  3. WindowsXP-KB975337-x86-ENU.exe: Permission denied  
  4. ------------------------------------------------------  
  5. Note: command 'wget -O WindowsXP-KB975337-x86-ENU.exe -nd -c --read-timeout=300 --retry-connrefused --header Accept-Encoding: gzip,deflate http://download.microsoft.com/download/a/b/c/abc45517-97a0-4cee-a362-1957be2f24e1/WindowsXP-KB975337-x86-ENU.exe' returned status 1.  Aborting.  

网上找了一点资料,说法较多,比如winetricks没有权限啦,.wine目录不是当前用户权限啦,所以,我到home目录下执行了

XML/HTML代码
  1. chown -R gouki:gouki /home/gouki/.wine   
  2. sudo chmod +x /usr/bin/winetricks  

更改完后,再次执行,还是上述错误。这回真的是找了很多资料,有一个回复比较靠谱,说是需要更改.winetrickscache权限为当前用户,或者下载最新的winetricks脚本(里面有含对目录权限的判断和更改)

 

然后,我找了一下我的home目录,却发现我根本没有.winetrickscache目录。因此,立刻

XML/HTML代码
  1. mkdir /home/gouki/.winetrickscache  

然后再次执行下面的程序,终于可以开始安装了。问题自然是就此解决。作个笔记

 

参考:http://forum.winehq.org/viewtopic.php?t=5174&view=previous&sid=cc8cacaa4cb95e574ef0d6ae9d1706e3

 

 

Tags: wine, winetricks, permission

怎样让文件目录与VirtualBox中的虚拟机共享

最近在用UBUNTU,那么遇到的问题就是如何让我的ubuntu的文件与windows共享?虽然一般来说我们有常见的几种:
1、samba文件共享(windows可以直接搜索网上邻居来访问,但配置较烦和繁)
2、remote desktop,这个,如果虚拟机是XP,那么在连接的时候,默认界面就被锁定了,不方便
3、VirtualBox自带的sharefolder。推荐的也是这个。
4、FTP(SFTP)这两种都可以,只是FTP需要HOST装FTP软件,sftp的话,则是需要HOST装ssh,XP装SSH客户端

现在说说sharefolder吧,如果你开启了这个功能,默认系统会让你选择一个UBUNTU的目录,然后就可以共享了。只是你不知道这个共享后目录在哪里,怎么办?
这时候,打开网上邻居,你会发现,除了windows network外,多了一个virtualbox network,在这里,你就找到:
大小: 14.5 K
尺寸: 294 x 153
浏览: 1926 次
点击打开新窗口浏览全图
打开后,将这个目录映射为虚拟盘就OK了。
然后就你可以象在本地一样操作了,灰常爽啊。

Tags: virtualbox, windows, samba

关于resolv.conf文件

/etc/resolv.conf,这个文件是DNS域名解析的配置文件,它的格式很简单,每行以一个关键字开头,后接配置参数。

resolv.conf的关键字主要有四个,分别是:

nameserver #定义DNS服务器的IP地址
domain #定义本地域名
search #定义域名的搜索列表
sortlist #对返回的域名进行排序

较为简单的/etc/resolv.conf示例:

domain neatstudio.com
search www.neatstudio.com neatstudio.com
nameserver 8.8.8.8
nameserver 4.3.2.1

最主要是nameserver关键字,如果没指定nameserver就找不到DNS服务器,其它关键字是可选的。(一般dhcp的时候都会带有nameserver过来,也可以自己指定一下nameserver)

Tags: resolv, ubuntu