Apache服务器优化方法小结

根据个人对Apache服务器优化的一些评论,加上一些前辈的经验,下面的优化在我使用的一年多时间里总体来说还是蛮有用的优化和非优化ExtendedStatusOn被禁用,因为写入了额外的时间戳。
MPM:worker-一种新的多进程多线程设计,适合大流量服务,但不稳定,对php等对象支持较差,不推荐,prefork-稳定,无线程,占用内存较多。
禁用HostnameLookupsoff,这样就少了一次DNS查询,并且可以使用单独的日志处理软件。
注释掉LoadMoule指令中不必要的模块。
一般来说,不必要的模块包括:复制代码代码如下:LoadModuleauth_basic_modulemodules/mod_auth_basic.so#LoadModuleauth_digest_modulemodules/mod_auth_digest.soLoadModuleauthn_file_modules/mod_authn_file.so#LoadModuleauthn_alias_modulemodules/mod_authn_alias.soLoadModuleauthn_anon_modulemodules/mod_authn_anon.so#LoadModuleauthn_dbm_modulemodules/mod_authn_dbm.soLoadModuleauthn_default_modulemodules/mod_authn_default.soLoadModuleauthz_host_modulemodules/mod_authz_host.soLoadModuleauthz_user_modulemodules/mod_authz_user.soLoadModuleauthz_owner_modulemodules/mod_authz_owner.soLoadModuleauthz_groupfile_modulemodules/mod_authz_groupfile.so#LoadModuleauthz_dbm_modulemodules/mod_authz_dbm.soLoadModuleauthz_default_modulemodules/mod_authz_default.soLoadModuleauthz_dbm_modulemodules/mod_ldap.so#LoadModuleauthnz_ldap_modulemodules/mod_authnz_ldap.soLoadModuleinclude_modulemodules/mod_include.soLoadModulelog_config_modulemodules/mod_log_config.soLoadModulelogio_modulemodules/mod_logio.soLoadModuleenv_modulemodules/mod_env.soLoadModuleext_filter_modulemodules/mod_ext_filter.soLoadModulemime_magic_modulemodules/mod_mime_magic.soLoadModuleexpires_modulemodules/mod_expires.soLoadModuledeflate_modulemodules/mod_deflate.soLoadModuleheaders_modulemodules/mod_headers.soLoadModuleusertrack_modulemodules/mod_usertrack.soLoadModulesetenvif_modulemodules/mod_setenvif.soLoadModulemime_modulemodules/mod_mime.so#LoadModuledav_modulemodules/mod_dav.soLoadModulestatus_modulemodules/mod_status.soLoadModuleautoindex_modulemodules/mod_autoindex.soLoadModuleinfo_modulemodules/mod_info.so#LoadModuledav_fs_modulemodules/mod_dav_fs.soLoadModulevhost_alias_modulemodules/mod_vhost_alias.soLoadModulenegotiation_modulemodules/mod_谈判.soLoadModuledir_modulemodules/mod_dir.soLoadModuleactions_modulemodules/mod_actions.soLoadModulespeling_modulemodules/mod_speling.so#例如:如果需要调试~/username/下的php,可以#LoadModuleuserdir_modulemodules/mod_userdir.soLoadModulealias_modulemodules/mod_alias.soLoadModulerewrite_modulemodule/mod_rewrite。
所以#LoadModuleproxy_modulemodules/mod_proxy.so#LoadModuleproxy_balancer_modulemodules/mod_proxy_balancer.so#LoadModuleproxy_ftp_modulemodules/mod_proxy_ftp.so#LoadModuleproxy_http_modulemodules/mod_proxy_http.so#LoadModuleproxy_connect_modulemodules/mod_proxy_connect.soLoadModulecache_modulemodules/mod_cache.soLoadModulesuexec_modulemodules/mod_suexec.soLoadModulesuexec_cache_modulemodules/mod_disk_cache.soLoadModulefile_cache_modulemodules/mod_file_cache.soLoadModulemem_cache_modulemodules/mod_mem_cache.so#像awstats这样的cgi程序应该使用LoadModulecgi_modulemodules/mod_cgi.soLoadModuleversion_modulemodules/mod_version.so以上只是一些我总结的那些别人不能给我的部分?优化不需要的选项....文件夹DirectoryOptionsIndexesInincludesFollowSymLinksExecCGIAllowOverrideAnoCopyExecCGI代码的选项允许执行CGI脚本。
如果这个选项没有设置后,CGI脚本将不会被执行。
如果没有必要最好不要启用它,因为这可能会导致安全问题Include允许服务器端包含。
服务器端包含允许HTML文件包含其他文件。
这通常不用于检查任何html,因此不要打开它。
不常用,禁用索引(如index.html),以某种方式显示目录内容列表,所以最好启用它禁用符号链接,Apache将不得不进行系统的其他调用来验证符号链接。
每个文件名组件都需要额外的调用当启用此选项时,Apache将检查每个请求是否包含对符号链接的引用,这将为请求中包含的每个路径调用lstat()一次。
当搜索“/index.html”时,Apache将为“/www”、“/www/htdocs”和“/www/htdocs/index.html”调用lstat()。
此外,运行lstat()的结果不会被缓存,因此每个请求必须运行一次。
如果您不打算使用符号链接,请使用Options-FollowSymLinks将其禁用。
运行破折号以禁用该指令。
AllowOverride选项是开启权限控制,比如htaccessinclude必须首先检查当前目录中是否存在该文件,如果存在,它将解析该文件并将设置应用于当前目录中的文件。
更糟糕的是,Apache不仅查看当前目录,还会查看当前目录之上的所有目录,以查看它们是否包含htaccess文件,从而根据所有这些文件完成设置。
例如,当查找“/index.html”时,Apache将尝试打开“/.htaccess”、“/www/.htaccess”和“/www/htdocs/.htaccess”。
解决办法是AllowOverrideNone禁用它,当然,那样的话,静态化只能写入VH配置中。
DirectoryIndexindex*,不要使用通配符,使用完整列表,例如DirectoryIndexindex.cgiindex.plindex.shtmlindex.html。
当然,至少明确指定配置文件列表并将其放在第一位会更好。
启用持久连接保持,以便子进程保持忙于等待打开连接上的新请求。
如果启用,KeepAliveTimeout默认为5秒。
最好不要超过60秒。
禁用注册表写入注册表信息是一项耗时的任务。
如果不需要保存日志记录信息,您可以通过注释掉设置文件中的日志记录行来禁用此选项,以节省更多处理器时间。
当然,如果您确实需要,您应该添加另一个单个磁盘来管理日志存储,如果您的WEB服务器使用大量静态内容,或者您​​使用两个WEB服务器来处理动态和静态内容。
那么你现在的主要目标就是缩短服务器发送请求内容的响应时间最简单的方法就是使用缓存模块。
您可以使用mod_disk_cache和mod_mem_cache分别提供基于磁盘的缓存和基于内存的缓存。
优化动态内容动态内容可能是任何WEB服务器中最耗时的部分,尤其是在使用CGI时,其中一个简单的程序可能会使响应时间增加几秒钟。
使用基于脚本的解决方案的一大优点是它们在Apache中加载解释器,这减少了运行时加载解释器的时间,请求可以直接执行而无需再次解析。
当然,应用服务也可以共享,比如后端使用PHP的fastcgi运行,前端使用web服务器。
具体系统的调优和优化是复杂且耗时的,需要调整具体的脚本才能利用优化结果,但优化的效果是动态的。
内容非常明显数据库或多个请求之间缓存信息对于电子商务网站非常有用。
它还减少了在不同请求之间重复加载信息的开销。
一般来说,网站的动态内容脚本和CGI​​是网站性能最重要的方面(因此优秀的程序员很重要,如果您管理典型的Apache服务器,您会发现Apache响应传入连接以及最终响应所花费的时间)它)。
发送给客户端的内容以毫秒为单位,而等待请求数据源的时间往往达到秒级。
其他优化可以将Apache(httpd)的优先级更改为-15,这接近上限(优先级范围从-20最高到19最低)。
可以从命令行使用这两个实用程序:*要停止现有服务并以优先级-15重新启动它,您可以发出Nice-15httpd命令*要避免停止服务,您可以在此处发出renice-15-p1996命令不同之处在于renice需要一个进程(或PID)。
如上所述,您可以使用tip来找出pid。
Nice和renice是非常灵活的配置模块mod_expires(这是一个非常有用的优化)mod_expires可以减少大约20-30%的重复请求,允许重复的用户将指定的页面请求结果缓存在本地,而根本不在服务器上。
提出请求。
如果用户没有发送缓存,则会更新,但要注意不要对更新很快的文件执行此操作。
592000ExpiresByTypeapplication/x-javascriptA2592000ExpiresByTypetext/cssA2592000ExpiresByTypeimage/gifA604800ExpiresByTypeimage/pngA604800ExpiresByTypeimage/jpegA604800ExpiresByTypetext/plainA604800ExpiresByTypeapplication/x-shockwave-flashA604800ExpiresByTypevideo/x-flvA604800ExpiresByTypeapplication/pdfA604800ExpiresByTypetext/htmlA60其实有压缩,我就不写了,看我的另一篇文章

服务器中apache(阿帕奇)是个什么软件,干嘛用的

APACHE是一个网络服务器,该服务器侦听TCP端口(通常为80),解释在该端口上接收到的命令,然后返回一些结果。
APACHE解释的主要命令是GET和POST,一般对应客户端在浏览器中输入地址,点击浏览器中的链接,提交表单。
APACHE解释GET和POST命令时,如果GET和POST对象是HTML、CSS、JS、RAR、TXT等一般文件,则直接将文件内容发送给客户端;object是一个PHP文件,APACHE启动PHP.EXE程序(在UNIX上其名称不同,其作为模块的安装细节也不同,以下只是一个示例),将文件和调用参数传递给PHP.EXE,然后将PHP.EXE的执行结果反馈给客户。
PHP可以调用各种库来执行各种功能,其中最典型的就是查询数据库。
PHP.EXE解释并执行PHP文本文件中的语句,它通常在执行前不进行翻译,就像批处理一样。
APACHE可以像PHP一样配置多个过滤器将所有XXX文件传递给XXX.EXE执行,并将完整内容发送到浏览器,其他文件直接发送。
APACHE是如此简单且机械地实现。