prefork模式(默认)javascript
这个多路处理模块(MPM)实现了一个非线程型的、预派生的web服务器,它的工做方式相似于Apache 1.3。它适合于没有线程安全库,须要避免线程兼容性问题的系统。它是要求将每一个请求相互独立的状况下最好的MPM,这样若一个请求出现问题就不会影响到其余请求。php
这个MPM具备很强的自我调节能力,只须要不多的配置指令调整。最重要的是将MaxClients设置为一个足够大的数值以处理潜在的请求高峰,同时又不能太大,以至须要使用的内存超出物理内存的大小。css
worker模式html
此多路处理模块(MPM)使网络服务器支持混合的多线程多进程。因为使用线程来处理请求,因此能够处理海量请求,而系统资源的开销小于基于进程的MPM。可是,它也使用了多进程,每一个进程又有多个线程,以得到基于进程的MPM的稳定性。java
ServerLimit 1000 StartServers 10 MinSpareServers 10 MaxSpareServers 20 MaxClients 1000 MaxRequestsPerChild 5000
httpd.confweb
一、KeepAlive On/Offsql
KeepAlive指的是保持链接活跃,相似于Mysql的永久链接。换一句话说,若是将KeepAlive设置为On,那么来自同一客户端的请求就不须要再一次链接,避免每次请求都要新建一个链接而加剧服务器的负担。通常状况下,图片较多的网站应该把KeepAlive设为On。apache
二、KeepAliveTimeOut number安全
若是第二次请求和第一次请求之间超过KeepAliveTimeOut的时间的话,第一次链接就会中断,再新建第二个链接。它的设置通常考虑图片或者JS等文件两次请求间隔,个人设置经验为3-5秒。服务器
三、MaxKeepAliveRequests 100
一次链接能够进行的HTTP请求的最大请求次数。将其值设为0将支持在一次链接内进行无限次的传输请求。事实上没有客户程序在一次链接中请求太多的页面,一般达不到这个上限就完成链接了。
四、StartServers 10
设置服务器启动时创建的子进程数量。由于子进程数量动态的取决于负载的轻重,全部通常没有必要调整这个参数。
五、MinSpareServers 10
设置空闲子进程的最小数量。所谓空闲子进程是指没有正在处理请求的子进程。若是当前空闲子进程数少于MinSpareServers ,那么Apache将以最大每秒一个的速度产生新的子进程。只有在很是繁忙机器上才须要调整这个参数。将此参数设的太大一般是一个坏主意。
六、MaxSpareThreads 20
设置空闲子进程的最大数量。若是当前有超过MaxSpareServers数量的空闲子进程,那么父进程将杀死多余的子进程。只有在很是繁忙机器上才须要调整这个参数。将此参数设的太大一般是一个坏主意。若是你将该指令的值设置为比MinSpareServers小,Apache将会自动将其修改为”MinSpareServers+1″。
七、ServerLimit 1000
服务器容许配置的进程数上限。只有在你须要将MaxClients设置成高于默认值256的时候才须要使用。要将此指令的值保持和MaxClients同样。修改此指令的值必须彻底中止服务后再启动才能生效,以restart方式重启动将不会生效。
八、MaxClients 1000
用于伺服客户端请求的最大请求数量(最大子进程数),任何超过MaxClients限制的请求都将进入等候队列。默认值是256,若是要提升这个值必须同时提升ServerLimit的值。笔者建议将初始值设为(以Mb为单位的最大物理内存/2),而后根据负载状况进行动态调整。好比一台4G内存的机器,那么初始值就是4000/2=2000。
九、MaxRequestsPerChild 5000
apache.exe进程包括一个是父进程、一个是子进程,父进程接到访问请求后,将请求交由子进程处理。MaxRequestsPerChild这个指令设定一个独立的子进程将能处理的请求数量。在处理“MaxRequestsPerChild 数字”个请求以后,子进程将会被父进程终止,这时候子进程占用的内存就会释放,若是再有访问请求,父进程会从新产生子进程进行处理。 若是MaxRequestsPerChild缺省设为0(无限)或较大的数字(例如10000以上)可使每一个子进程处理更多的请求,不会由于不断终止、启动子进程下降访问效率,但MaxRequestsPerChild设置为0时,若是占用了200~300M内存,即便负载下来时占用的内存也不会减小。内存较大的服务器能够设置为0或较大的数字。内存较小的服务器不妨设置成30、50、100,以防内存溢出。因此通常状况下,若是你发现服务器的内存直线上升,建议修改该参数试试。
#LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbd_module modules/mod_authn_dbd.so #LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so #LoadModule authz_groupfile_module modules/mod_authz_groupfile.so #LoadModule authz_user_module modules/mod_authz_user.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so #LoadModule authz_owner_module modules/mod_authz_owner.so #LoadModule authz_default_module modules/mod_authz_default.so #LoadModule auth_basic_module modules/mod_auth_basic.so #LoadModule auth_digest_module modules/mod_auth_digest.so #LoadModule dbd_module modules/mod_dbd.so #LoadModule dumpio_module modules/mod_dumpio.so #LoadModule reqtimeout_module modules/mod_reqtimeout.so #LoadModule ext_filter_module modules/mod_ext_filter.so LoadModule include_module modules/mod_include.so #LoadModule filter_module modules/mod_filter.so #LoadModule substitute_module modules/mod_substitute.so LoadModule deflate_module modules/mod_deflate.so LoadModule log_config_module modules/mod_log_config.so LoadModule log_forensic_module modules/mod_log_forensic.so LoadModule logio_module modules/mod_logio.so LoadModule env_module modules/mod_env.so #LoadModule mime_magic_module modules/mod_mime_magic.so #LoadModule cern_meta_module modules/mod_cern_meta.so LoadModule expires_module modules/mod_expires.so LoadModule headers_module modules/mod_headers.so #LoadModule ident_module modules/mod_ident.so #LoadModule usertrack_module modules/mod_usertrack.so #LoadModule unique_id_module modules/mod_unique_id.so LoadModule setenvif_module modules/mod_setenvif.so #LoadModule version_module modules/mod_version.so LoadModule mime_module modules/mod_mime.so #LoadModule dav_module modules/mod_dav.so LoadModule status_module modules/mod_status.so #LoadModule autoindex_module modules/mod_autoindex.so #LoadModule asis_module modules/mod_asis.so #LoadModule info_module modules/mod_info.so #LoadModule cgi_module modules/mod_cgi.so #LoadModule dav_fs_module modules/mod_dav_fs.so LoadModule vhost_alias_module modules/mod_vhost_alias.so #LoadModule negotiation_module modules/mod_negotiation.so LoadModule dir_module modules/mod_dir.so #LoadModule imagemap_module modules/mod_imagemap.so #LoadModule actions_module modules/mod_actions.so #LoadModule speling_module modules/mod_speling.so #LoadModule userdir_module modules/mod_userdir.so LoadModule alias_module modules/mod_alias.so LoadModule rewrite_module modules/mod_rewrite.so LoadModule jk_module modules/mod_jk.so
LogLevel warn LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common #LogFormat "%h %{HTTP_HOST}i %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio LogFormat "%A - %h %{HTTP_HOST}i %{X-Forwarded-For}i %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O \"%V %v:%p %T\" %{cookie}n" combinedio #CustomLog "logs/access_log" common
其中增长了%{cookie}配置,以供大数据平台分析使用;
<Location /server-status> SetHandler server-status Order deny,allow Deny from all Allow from localhost 192.168.1.0/24 </Location>
#configure for mod_jk JkWorkersFile conf/workers.properties JkShmFile logs/mod_jk.shm JkLogFile logs/mod_jk.log JkLogLevel error
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 6 AddOutputFilter DEFLATE html xml js css 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
<IfModule usertrack_module> CookieExpires " 1 weeks" CookieStyle RFC2965 CookieName _m_data_ CookieTracking on </IfModule>
主要用于后台Tomcat没办法正常使用时,主页提示之用,如:升级页面、网站临时异常;
#<VirtualHost *:80> # ServerName www.domain.com # ServerAlias www.domain.com # DocumentRoot "/domain/apache2.2.25/htdocs" # ErrorLog "|/domain/apache2.2.25/bin/rotatelogs /domain/apache2.2.25/logs/update/errorlog-%Y-%m-%d 20M" #</VirtualHost> #<VirtualHost *:80> # ServerName *.domain.com # ServerAlias *.domain.com # DocumentRoot "/domain/apache2.2.25/htdocs" # ErrorLog "|/domain/apache2.2.25/bin/rotatelogs /domain/apache2.2.25/logs/update/errorlog-%Y-%m-%d 20M" #</VirtualHost>
<VirtualHost *:80> ServerName www.domain.com ServerAlias www.domain.com DocumentRoot "/domain/source/www/deploy/domain" SetEnvIf Request_URI \.gif NOLOG SetEnvIf Request_URI \.jpg NOLOG SetEnvIf Request_URI \.png NOLOG SetEnvIf Request_URI \.swf NOLOG SetEnvIf Request_URI \.css NOLOG SetEnvIf Request_URI \.js NOLOG SetEnvIf Request_URI \.ico NOLOG #SetEnvIf Request_URI "/fckeditor/.*" NOLOG ErrorLog "|/domain/apache2.2.25/bin/rotatelogs /domain/apache2.2.25/logs/error/domain-error-%Y%m%d.log 5M" CustomLog "|/domain/apache2.2.25/bin/rotatelogs /domain/apache2.2.25/logs/access/domain-access-%Y%m%d.log 86400 480" combinedio env=!NOLOG AddOutputFilterByType DEFLATE text/html JkMount /* domain_worker JKUnmount /*.js domain_worker JKUnmount /*.css domain_worker JKUnmount /*.img domain_worker JKUnmount /*.jpg domain_worker JKUnmount /*.png domain_worker JKUnmount /*.map domain_worker JKUnmount /image/* domain_worker JKUnmount /images/* domain_worker JKUnmount /upload/* domain_worker KeepAlive off ExpiresActive On ExpiresByType image/gif A2592000 ExpiresByType image/png A2592000 ExpiresByType image/jpg A2592000 ExpiresByType text/plain A2592000 ExpiresByType image/jpeg A2592000 ExpiresByType image/x-icon A2592000 ExpiresByType application/javascript A2592000 Header unset Expires DirectoryIndex index.htm RewriteEngine on RewriteCond %{HTTP_HOST} ^juran.cn$ [NC] RewriteRule ^/(.*) http://www.domain.com/$1 [R=301,L] RewriteRule ^.+/$ index.htm [L,R] ErrorDocument 404 /error.htm </VirtualHost> <Directory "/domain/source/www/deploy/domain/WEB-INF"> Options FollowSymLinks AllowOverride None Order deny,allow Deny from all </Directory> <Directory "/domain/source/www/deploy/domain"> Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from 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 workers.properties配置
worker.list=controller,domain_worker,domain_worker1 worker.domain_worker.port=8009 worker.domain_worker.host=localhost1 worker.domain_worker.type=ajp13 worker.domain_worker1.port=8009 worker.domain_worker1.host=localhost2 worker.domain_worker1.type=ajp13 worker.controller.lbfactor=1 worker.loadbalancer.type=lb worker.loadbalancer.balance_workers=domain_worker,domain_worker1