【APACHE的工作方式】
prefork模式(默认)
这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工作方式类似于Apache 1.3。它适合于没有线程安全库,需要避免线程兼容性问题的系统。它是要求将每个请求相互独立的情况下最好的MPM,这样若一个请求出现问题就不会影响到其他请求。
这个MPM具有很强的自我调节能力,只需要很少的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以致需要使用的内存超出物理内存的大小。
worker模式
此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。由于使用线程来处理请求,所以可以处理海量请求,而系统资源的开销小于基于进程的MPM。但是,它也使用了多进程,每个进程又有多个线程,以获得基于进程的MPM的稳定性。
【apache配置参数备注】
1、KeepAlive On/Off
KeepAlive指的是保持连接活跃,类似于Mysql的永久连接。换一句话说,如果将KeepAlive设置为On,那么来自同一客户端的请求就不 需要再一次连接,避免每次请求都要新建一个连接而加重服务器的负担。一般情况下,图片较多的网站应该把KeepAlive设为On。
2、KeepAliveTimeOut number
如果第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话,第一次连接就会中断,再新建第二个连接。它的设置一般考虑图片或者JS等文件两次请求间隔,我的设置经验为3-5秒。
3、MaxKeepAliveRequests 100
一次连接可以进行的HTTP请求的最大请求次数。将其值设为0将支持在一次连接内进行无限次的传输请求。事实上没有客户程序在一次连接中请求太多的页面,通常达不到这个上限就完成连接了。
4、StartServers 10
设置服务器启动时建立的子进程数量。因为子进程数量动态的取决于负载的轻重,所有一般没有必要调整这个参数。
5、MinSpareServers 10
设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。如果当前 空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。
6、MaxSpareThreads 75
设置空闲子进程的最大数量。如果当前有超过MaxSpareServers数量的空 闲子进程,那么父进程将杀死多余的子进程。只有在非常繁忙机器上才需要调整这个参数。将此参数设的太大通常是一个坏主意。如果你将该指令的值设置为比 MinSpareServers小,Apache将会自动将其修改成”MinSpareServers+1″。
7、ServerLimit 2000
服务器允许配置的进程数上限。只有在你需要将MaxClients设置成高于默认值256的时候才需要使用。要将此指令的值保持和MaxClients一样。修改此指令的值必须完全停止服务后再启动才能生效,以restart方式重启动将不会生效。
8、MaxClients 256
用于伺服 客户端请求的最大请求数量(最大子进程数),任何超过MaxClients限制的请求都将进入等候队列。默认值是256,如果要提高这个值必须同时提高 ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),然后根据负载情况进行动态调整。比如一台4G内存的机器,那么初 始值就是4000/2=2000。
9、MaxRequestsPerChild 0
apache.exe进程包括一个是父进程、一个是子进程,父进程接到访问请求后,将请求交由子进程处理。MaxRequestsPerChild这个指 令设定一个独立的子进程将能处理的请求数量。在处理“MaxRequestsPerChild 数字”个请求之后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,如果再有访问请求,父进程会重新产生子进程进行处理。 如果 MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可以使每个子进程处理更多的请求,不会因为不断终止、启动 子进程降低访问效率,但MaxRequestsPerChild设置为0时,如果占用了200~300M内存,即使负载下来时占用的内存也不会减少。内存 较大的服务器可以设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。所以一般情况下,如果你发现服务器的内存直线上升,建议修改该参数试试。
【apache的Rewrite】
1、是否支持使用.htaccess文件来定义或者修改apache的设置,是否支持目录列表
Options indexes FollowSymLinks
AllowOverride All
</Directory>
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt) #定义重写发生的条件
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteLog D:/lib/rewrite.log #设置rewrite日志文件,主要用来rewrite调试
RewriteLogLevel 3 #设置rewrite日志文件记录的等级,主要用来rewrite调试
【apache的Gzip功能】
gzip可以级大的加速网站.有时压缩比率高到80%,近来测试了一下,最少都有40%以上,还是相当不错的.在Apache2之后的版本,模块名不叫gzip,而叫mod_deflate
如果要开启gzip的话,一定要打开下面二个模块.
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
设置压缩比率,取值范围在 1(最低) 到 9(最高)之间,不建议设置太高,虽然有很高的压缩率,但是占用更多的CPU资源.
DeflateCompressionLevel 3
AddOutputFilter DEFLATE html xml php js css
<Location />
SetOutputFilter DEFLATE
BrowserMatch ^Mozilla/4 gzip-only-text/html
BrowserMatch ^Mozilla/4\.0[678] no-gzip
BrowserMatch \bMSIE !no-gzip !gzip-only-text/html
SetEnvIfNoCase Request_URI \\.(?:gif|jpe?g|png)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:exe|t?gz|zip|bz2|sit|rar)$ no-gzip dont-vary
SetEnvIfNoCase Request_URI .(?:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary
Header append Vary User-Agent env=!dont-vary #对代理的设置
</Location>
下面二个测试网站
http://www.whatsmyip.org/mod_gzip_test/
http://www.gidnetwork.com/tools/gzip-test.php
测试数据对css
Original Size: 44 KB
Gzipped Size: 10 KB
Data Savings: 77.27%
测试数据js
Original Size: 6 KB
Gzipped Size: 2 KB
Data Savings: 66.67%
测试数据php
Original Size: 62 KB
Gzipped Size: 15 KB
Data Savings: 75.81%
上面只是随机拿的几个数据,看的出来,使用了gzip压缩后文件小多了.
另外讲一下,有关squid对gzip的处理
在squid中,对同一个URL只保留一份缓存。对于如果不同browser(是否支持压缩) 如果频繁交替访问,例如:对某个cache住的目标,一个http/1.0请求可能会导致squid强制更新其缓存。但接下来的另一个http/1.1请 求又会导致squid再次更新缓存。这样那squid缓存数据就要频繁更新,这就极大的降低了cache命中率。
不过还好,现实环境中不支持压缩的browser毕竟是很少的情况,所以对于缓存命中率的降低很有限.
相关推荐
**Apache配置优化总结** Apache HTTP Server是世界上最流行的Web服务器软件之一,它被广泛用于托管静态内容、动态内容以及各类Web应用程序。为了确保高效、稳定的服务,对Apache进行配置优化至关重要。以下是一些...
在IT行业中,网站优化与服务器配置优化是提升用户体验和系统性能的关键环节。Apache作为最流行的开源Web服务器,其性能优化对于任何网站来说都是至关重要的。本文将深入探讨Apache的优化策略,结合“apache优化 网站...
总的来说,Apache配置是一个深度定制的过程,理解这些基本概念和指令将使你能够有效地管理和优化你的Web服务器。请根据实际需求,谨慎修改配置,确保服务器的安全性和稳定性。通过不断学习和实践,你将能够驾驭...
因此,推荐的做法是在Apache配置文件中禁用这一功能。 - **配置文件位置**:通常,这些设置可以在Apache的主配置文件`httpd.conf`中找到。 - **配置项修改**:具体做法是在`<Directory>`配置段落中,找到`Options`...
以上是Apache配置文件httpd.conf中的一些核心配置项的解释,理解并熟练掌握这些配置可以帮助管理员更高效地管理和优化Apache服务器的性能。此外,httpd.conf的复杂性和灵活性意味着还有许多其他配置选项和细节值得...
### CentOS 下 Apache 配置多域名或多端口映射详解 #### 一、概述 在 CentOS 系统中,Apache 是一个广泛使用的 Web 服务器软件,它可以用来托管多个不同的网站或应用服务。为了实现这一点,我们需要对 Apache 进行...
#### 二、Apache 2.2 配置优化 1. **配置拆分** 在主配置文件 `httpd.conf` 中,通过注释掉 `Include conf/Includes/*.conf` 行,将Apache的功能配置分成多个小文件,以便于管理。 2. **修改 MPM 参数** MPM ...
学习Apache配置的目标是理解Web基本概念,掌握Apache配置指令,包括基本配置、多站点配置、安全和性能优化。此外,熟悉Apache的日常管理命令,如启动、停止和监控,对于维护稳定高效的Web服务至关重要。通过这些知识...
### Apache配置 Apache作为Web服务器,其配置主要集中在`httpd.conf`文件中。此文件包含了Apache的所有设置,包括监听端口、文档根目录、模块加载等。例如,在`httpd.conf`中,通过`Listen 5088`指定Apache监听的...
内容概要:本文详细介绍了 Apache Web 服务器的配置优化和性能提升方法,包括配置文件的基础结构解析、基本配置指令的使用、性能优化的关键参数调整、负载均衡与缓存策略的应用、安全配置措施以及日志与错误处理的...
### Apache配置多端口及Apache端口修改方法详解 在多服务器环境或单一服务器上运行多个站点时,正确配置Apache的端口变得至关重要。本文将深入解析如何在Apache中配置多端口,以及如何修改Apache的默认端口,确保您...
本文主要介绍了如何成功的在Linux上安装与配置Apache、Php、Mysql,并且详细地说明了在安装过程中出现的一些问题解决方法。...Apache配置和日志 Linux下Apache 配置详解 Linux下查看编译参数 LAMP优化技巧
Apache 与 PHP 配置是将这两个开源软件结合在一起,以提供动态网页服务。Apache 是一个流行的网络服务器,而 PHP 是一种广泛使用的...在实际操作中,还需要根据具体需求调整配置,如设置 PHP 错误报告、优化性能等。
记住,安全性和性能优化也是在配置过程中不容忽视的重要环节,比如使用SSL证书、限制目录访问等。 在提供的“虚拟主机.txt”文件中,可能包含了更详细的步骤或示例配置,建议参考该文件以获取更多实用信息。在实践...
"Apache配置中文版"提供了详细的指导,帮助用户理解和设置Apache服务器,使其能根据需求运行网站和服务。下面将深入探讨Apache配置的相关知识点。 1. **Apache基本结构与配置文件**: Apache的配置主要通过修改`...
本教程将深入探讨Apache配置的各个方面,旨在提供一个全面而详尽的指南,帮助你理解和优化你的Apache服务器。 一、Apache基础 Apache服务器是用C语言编写的,它通过HTTP协议向客户端提供静态和动态内容。Apache的...
- 通过`.htaccess`文件或者在Apache配置文件中设置特定目录的访问权限。 - 使用`Require all denied`来禁止所有用户访问敏感目录或文件。 2. **隐藏敏感信息**: - 在Apache配置文件中禁用显示版本号的功能,...
本文将深入探讨Apache的配置与优化,帮助你更好地理解和利用这一强大的工具。 首先,我们来了解为什么选择Apache。Apache不仅是最主流的Web服务器,而且由于其稳定性和安全性,许多顶级网站都依赖它,例如除MSN之外...
httpd.conf 文件中包含了 Apache 服务器的所有配置信息,包括主站点的配置、服务器的优化、访问控制等。 主站点的配置 主站点的配置是 Apache 服务器的基本配置,包括 ServerRoot、PidFile、Listen、ServerName、...
总结,Apache配置涉及到服务器的启动、停止、配置文件的修改、模块的加载、安全性设置以及性能优化等多个方面。理解和掌握这些知识点,将有助于构建高效、安全的Web服务器环境。通过阅读`apache 配置1.doc`、`apache...