Apache 中 KeepAlive 配置的合理使用
在 Apache 服务器中,KeepAlive 是一个布尔值,On 代表打开,Off 代表关闭,这个指令在其他众多的 HTTPD 服务器中都是存在的。
KeepAlive 配置指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,如果 KeepAlive 设置为On,那么用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次 TCP 连接中完成,而不用重复建立新的 TCP 连接和关闭TCP 连接,可以提高用户访问速度。
那么我们考虑3种情况:
1。用户浏览一个网页时,除了网页本身外,还引用了多个 javascript 文件,多个 css 文件,多个图片文件,并且这些文件都在同一个 HTTP 服务器上。
2。用户浏览一个网页时,除了网页本身外,还引用一个 javascript 文件,一个图片文件。
3。用户浏览的是一个动态网页,由程序即时生成内容,并且不引用其他内容。
在 Apache 服务器中,KeepAlive 是一个布尔值,On 代表打开,Off 代表关闭,这个指令在其他众多的 HTTPD 服务器中都是存在的。
KeepAlive 配置指令决定当处理完用户发起的 HTTP 请求后是否立即关闭 TCP 连接,如果 KeepAlive 设置为On,那么用户完成一次访问后,不会立即断开连接,如果还有请求,那么会继续在这一次 TCP 连接中完成,而不用重复建立新的 TCP 连接和关闭TCP 连接,可以提高用户访问速度。
那么我们考虑3种情况:
1。用户浏览一个网页时,除了网页本身外,还引用了多个 javascript 文件,多个 css 文件,多个图片文件,并且这些文件都在同一个 HTTP 服务器上。
2。用户浏览一个网页时,除了网页本身外,还引用一个 javascript 文件,一个图片文件。
3。用户浏览的是一个动态网页,由程序即时生成内容,并且不引用其他内容。
a. 新安装 apache 加上 --enable-deflate
加装执行 /usr/local/apache/bin/apxs -i -a -c /usr/local/src/httpd/filters/mod_deflate.c
b. 安装完毕 查看是否添加 LoadModule deflate_module modules/mod_deflate.so
c. 编辑 httpd.conf
<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog logs/deflate_log.log deflate
</ifmodule>
d. 官方参考: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
加装执行 /usr/local/apache/bin/apxs -i -a -c /usr/local/src/httpd/filters/mod_deflate.c
b. 安装完毕 查看是否添加 LoadModule deflate_module modules/mod_deflate.so
c. 编辑 httpd.conf
<ifmodule mod_deflate.c>
DeflateCompressionLevel 9
SetOutputFilter DEFLATE
#DeflateFilterNote Input instream
#DeflateFilterNote Output outstream
#DeflateFilterNote Ratio ratio
#LogFormat '"%r" %{outstream}n/%{instream}n (%{ratio}n%%)' deflate
#CustomLog logs/deflate_log.log deflate
</ifmodule>
d. 官方参考: http://httpd.apache.org/docs/2.0/mod/mod_deflate.html
Apache 2.0在性能上的改善最吸引人。在支持POSIX线程的Unix系统上,Apache可以通过不同的MPM运行在一种多进程与多线程相混合的模式下,增强部分配置的可扩充性能。相比于Apache 1.3,2.0版本做了大量的优化来提升处理能力和可伸缩性,并且大多数改进在默认状态下即可生效。但是在编译和运行时刻,2.0也有许多可以显著提高性能的选择。本文不想叙述那些以功能换取速度的指令,如HostnameLookups等,而只是说明在2.0中影响性能的最核心特性:MPM(Multi -Processing Modules,多道处理模块)的基本工作原理和配置指令。
毫不夸张地说,MPM的引入是Apache 2.0最重要的变化。大家知道,Apache是基于模块化的设计,而Apache 2.0更扩展了模块化设计到Web服务器的最基本功能。服务器装载了一种多道处理模块,负责绑定本机网络端口、接受请求,并调度子进程来处理请求。扩展模块化设计有两个重要好处:
◆ Apache可以更简洁、有效地支持多种操作系统;
◆ 服务器可以按站点的特殊需要进行自定制。
在用户级,MPM看起来和其它Apache模块非常类似。主要区别是在任意时刻只能有一种MPM被装载到服务器中。
毫不夸张地说,MPM的引入是Apache 2.0最重要的变化。大家知道,Apache是基于模块化的设计,而Apache 2.0更扩展了模块化设计到Web服务器的最基本功能。服务器装载了一种多道处理模块,负责绑定本机网络端口、接受请求,并调度子进程来处理请求。扩展模块化设计有两个重要好处:
◆ Apache可以更简洁、有效地支持多种操作系统;
◆ 服务器可以按站点的特殊需要进行自定制。
在用户级,MPM看起来和其它Apache模块非常类似。主要区别是在任意时刻只能有一种MPM被装载到服务器中。
XCache 是套華人所撰寫的 PHP opcode cacher,在速度上的表現真的是讓人驚豔的軟體,網路上應該可以看到不少對它的讚賞
其實早就知道這套軟體,但最終還是因為自己懶,所以一直都沒去安裝。最近心血來潮,才把它裝上去 主機的OS分別有 Windows 和 FreeBSD ,在這邊就先紀錄一下安裝的紀錄。
FreeBSD:
# cd /usr/ports/www/xcache ; make install cleanWindows:
這邊指得是複製到你 php 安裝的 extension 資料夾下。
複製 php_xcache.dll 到 c:php5ext 下 接著把 xcache.ini 的設定,複製到 php.ini 裡。
XCache 的設定:
[xcache-common]
;; 安裝成 zend extension (建議), 一般的格式 "$extension_dir/xcache.so"
;zend_extension = /usr/local/lib/php/extensions/\
;non-debug-non-zts-xxx/xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/\
;non-debug-zts-xxx/xcache.so
其實早就知道這套軟體,但最終還是因為自己懶,所以一直都沒去安裝。最近心血來潮,才把它裝上去 主機的OS分別有 Windows 和 FreeBSD ,在這邊就先紀錄一下安裝的紀錄。
FreeBSD:
# cd /usr/ports/www/xcache ; make install cleanWindows:
這邊指得是複製到你 php 安裝的 extension 資料夾下。
複製 php_xcache.dll 到 c:php5ext 下 接著把 xcache.ini 的設定,複製到 php.ini 裡。
XCache 的設定:
[xcache-common]
;; 安裝成 zend extension (建議), 一般的格式 "$extension_dir/xcache.so"
;zend_extension = /usr/local/lib/php/extensions/\
;non-debug-non-zts-xxx/xcache.so
; zend_extension_ts = /usr/local/lib/php/extensions/\
;non-debug-zts-xxx/xcache.so
如果你在Linux下用Apache Bench (ab)测试我这个网站的话,就会发现服务器不是常见的Apache, 而是 nginx.
nginx是一个小巧而高效的Linux下的web服务器软件。开发人员 Igor Sysoev 来自俄罗斯,nginx的话其实已经在一些俄罗斯的大型网站上运行多年,相当的稳定,最近才在美国开始知名起来。
而另外一个热门的web服务器软件是Lighttpd,因为运行在Youtube的后台,所以知名度很高。Lighttpd特色在于它能做Flash streaming和对fastcgi的支持,这样对于Ruby on Rails之类的程序提速不少,比起Apache要好很多。
但是 nginx 要比 Lighttpd 更稳定,功能上并不弱于Lighttpd,差不多什么都有,而且比Lighttpd对于URL rewrite的支持更完善一点。
不管是 nginx 还是 lighttpd, 对于用来提供静态文件都要比Apache好很多很多,主要就是占用的内存小,Apache和这两个小巧的服务器软件来比实在是个庞然大物啊。
测试报告::::::
主机环境:
电脑: PC, CPU: AMD 1800+, MEM: 728M, DISK: IDE 7200RPM 2M, 160G
系统: FreeBSD 6.1-RELEASE-p11
nginx是一个小巧而高效的Linux下的web服务器软件。开发人员 Igor Sysoev 来自俄罗斯,nginx的话其实已经在一些俄罗斯的大型网站上运行多年,相当的稳定,最近才在美国开始知名起来。
而另外一个热门的web服务器软件是Lighttpd,因为运行在Youtube的后台,所以知名度很高。Lighttpd特色在于它能做Flash streaming和对fastcgi的支持,这样对于Ruby on Rails之类的程序提速不少,比起Apache要好很多。
但是 nginx 要比 Lighttpd 更稳定,功能上并不弱于Lighttpd,差不多什么都有,而且比Lighttpd对于URL rewrite的支持更完善一点。
不管是 nginx 还是 lighttpd, 对于用来提供静态文件都要比Apache好很多很多,主要就是占用的内存小,Apache和这两个小巧的服务器软件来比实在是个庞然大物啊。
测试报告::::::
主机环境:
电脑: PC, CPU: AMD 1800+, MEM: 728M, DISK: IDE 7200RPM 2M, 160G
系统: FreeBSD 6.1-RELEASE-p11
How To Set Up A Loadbalanced High-Availability Apache Cluster
http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster
实例讲解4台apache做集群的方法,两个apache结点,两个balaner
Advanced MySQL Replication Techniques
http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html
mysql 5的集群,只做过slave master的集群,文章介绍的方法,听说不是很稳定,还没有尝试!
收藏先,明天仔细看看...
http://www.howtoforge.com/high_availability_loadbalanced_apache_cluster
实例讲解4台apache做集群的方法,两个apache结点,两个balaner
Advanced MySQL Replication Techniques
http://www.onlamp.com/pub/a/onlamp/2006/04/20/advanced-mysql-replication.html
mysql 5的集群,只做过slave master的集群,文章介绍的方法,听说不是很稳定,还没有尝试!
收藏先,明天仔细看看...















