2023-11-02 分类: 网站建设
网站的访问速度是由多个因素所共同决定的,这些因素例如应用程序的响应速度、网络带宽、服务器性能、与客户端之间的网络传输速度等等。其中最重要的一个因素是应用程序本身的响应速度,因此当你为网站性能所苦恼时,你第一个需要着手进行处理的便是尽可能的提升应用程序的执行速度,你可以使用缓存或者是优化代码的执行效率来提升应用程序的速度。
但是,本文并不是介绍如何来提升应用程序的执行效率,前面提到的只不过是为了防止您病急乱投医。在确保您的应用程序的性能已经达到足够好,同时服务器的性能也完全满足的情况下,不妨来试试网页压缩来进一步提升网页的浏览速度,而且非常重要的是,它完全不需要任何的成本,只不过是会让您的服务器CpU占用率稍微提升一两个百分点而已或者更少。
网页压缩是一项由 WEb 服务器和浏览器之间共同遵守的协议,也就是说 WEb 服务器和浏览器都必须支持该技术,所幸的是现在流行的浏览器都是支持的,包括 IE、FireFox、Opera 等;服务器有 Apache 和 IIS 等。双方的协商过程如下:
在实际的应用中我们发现压缩的比率往往在 3 到 10 倍,也就是本来 50k 大小的页面,采用压缩后实际传输的内容大小只有 5 至 15k 大小,这可以大大节省服务器的网络带宽,同时如果应用程序的响应足够快时,网站的速度瓶颈就转到了网络的传输速度上,因此内容压缩后就可以大大的提升页面的浏览速度。
接下来我们介绍几种常用的环境下如何启用网页压缩功能。
纯 Tomcat 服务器
如果您的 WEb 应用程序是跑在 Tomcat 服务器下的,而且直接使用 Tomcat 所提供的 HTTp 服务,那建议你马上动手,因为实在是太简单了,你只需要在 server.xml 配置文件中给 HTTp Connector 增加一个 compression 的参数值为 on 并重启 Tomcat 服务器就立刻生效,配置如下:
<Connector port="8080" protocol="HTTp/1.1" maxThreads="150" connectionTimeout="20000" redirectport="8443" compression="on"/> |
Apache 服务器
在 apache 1.3 版本,大家常用 mod_gzip 对输出内容进行压缩,现在主流的浏览器都支持 gzip 解压缩。在 apache2 下,这个模块换名为 mod_deflate
,对应的模块文件名是 mod_deflate.so
。mod_gzip 本文不做介绍,下面描述一下在 Apache 2 下如何启用并配置 mod_deflate
模块。默认安装的 Apache 不管是 Windows 还是 Linux/Unix,都是不启用该模块的, Linux/Unix 下甚至不带该模块,你需要手工编译这个模块。
下面我们分别介绍在 Windows 和 Linux 操作系统下如何启用并配置 mod_deflate
模块。
在 Windows 下采用安装程序安装的 Apache 服务器已经带有 deflate 所需要的模块 mod_deflate.so
和 mod_headers.so
,我们只需要在 httpd.conf 配置文件中启用并进行相关的配置即可,配置如下:
LoadModule deflate_module modules/mod_deflate.so LoadModule headers_module modules/mod_headers.so <Location /> # Insert filter SetOutputFilter DEFLATE # Netscape 4.x has some problems... browserMatch ^Mozilla/4 gzip-only-text/html # Netscape 4.06-4.08 have some more problems browserMatch ^Mozilla/4\.0[678] no-gzip # MSIE masquerades as Netscape, but it is fine # browserMatch \bMSIE !no-gzip !gzip-only-text/html # NOTE: Due to a bug in mod_setenvif up to Apache 2.0.48 # the above regex wont work. You can use the following # workaround to get the desired effect: browserMatch \bMSI[E] !no-gzip !gzip-only-text/html # Dont compress images SetEnvIfNoCase Request_URI .(?:gif|jpe?g|png)$ no-gzip dont-vary # Make sure proxies dont deliver the wrong content Header append Vary User-Agent env=!dont-vary </Location> |
mod_deflate
和 mod_headers
编译进去的话,那就稍微有点麻烦,首先我们先看如何在编译安装 Apache 过程中也同时编译这两个模块,请在执行 configure 程序时增加两个参数分别是:# ./configure --enable-deflate --enable-headers |
deflate
模块了,配置的方法跟 Windows 平台下是相同的。如果说您的 Apache 已经在运行了,不想再重新编译一次,那也可以选择只编译 deflate
模块所需的文件 mod_deflate.c
和 mod_headers.c
。这两个文件位于 {apache-src}/modules/filters/
目录下(其中 {apache-src}
为 apache 源文件所在的目录)。使用如下命令来单独编译这两个源文件。
# {apache-bin}/apxs -i -a -c {apache-src}/modules/filters/mod_deflate.c # {apache-bin}/apxs –i –a –c {apache-src}/modules/filters/mod_headers.c |
{apache-bin}
为 Apache 安装目录下的 bin 目录,接下来在 httpd.conf 直接配置该模块即可。很多时候你在单独编译 deflate
模块的时候可能会碰到编译错误,提示是:
Cannot load /opt/apache/modules/mod_deflate.so into server: /opt/apache/modules/mod_deflate.so: undefined symbol: deflate
解决的方法如下:
编辑 /usr/local/apache2/bin/apr-config
文件修改其中的 LDFLAGS 值为 "-lz",然后再重新编译 mod_deflate
模块,apxs -ica mod_deflate.c
即可。
为了省却不必要的麻烦,请尽量在编译安装时直接加上 --enable-deflate --enable-headers
参数。
网站标题:利用压缩网页来提升网站浏览速度
网址分享:/news1/292101.html
成都网站建设公司_创新互联,为您提供网站营销、星空体育app最新版本(2024已更新)、云服务器、面包屑导航、定制网站、服务器托管
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联
猜你还喜欢下面的内容