Linux网站架构系列之apache----调优篇
生产场景配置实例3: StartServers 2 MaxClients 500 ServerLimit 25 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 生产场景配置实例4: StartServers 3 MaxClients 1600 ServerLimit 25 MinSpareThreads 50 MaxSpareThreads 200 ThreadLimit 200 ThreadsPerChild 64 worker模式下所能同时处理的请求总数是由子进程总数乘以Threadsperchild值决定的,应该大于等于maxclients。如果负载很大,现有的子进程数不能满足时,控制进程会派生新的子进程。默认最大的子进程总数是16,如需加大时也需要显示声明serverlimit的值(最大值是20000) 特别说明:如果显示声明了ServerLimit,那么它乘以ThreadsPerChild的值必须大于等于MaxClients,而且MaxClients必须是ThreadsPerChild的整数倍,否则apache将会自动调节到一个相应值(可能是个非期望值)。 数学表达: MaxClient=总的进程数(ServerLimit)x线程数(ThreadsPerChild) MaxClient%ThreadsPerChild=0 生产环境中我们需要开启配置行,这样才能实现并发链接数的增加。 1、开启配置行 这里我们要apache的主配置文件,找到包含的行,并解开注释 [root@c64-web /]# grep ; /usr/local/apache/conf/ #Include conf/extra/ [root@c64-web /]# sed -i 's##Include conf/extra/; /usr/local/apache/conf/ 注意:编译安装的,只有此行解开注释了,后面的修改才能生效。 2、修改配置 1)如果你的apache服务为worker模式,那么生产环境中可以选择上面worker模式的生产环境配置实例1的配置。 2)如果你的apache服务为prefork模式,那么生产环境中可以参考上面prefork模式的生产环境配置实例1的配置。 生产环境中,这里我建议大家选择worker模式。 十、开启防盗链 一些小网站为了盈利,通过盗链来实现对自己网站内容的丰富,这无疑加大了企业的空间和流量的成本,因此我们需要对apache进行防盗链的配置。 由于我们要用到mod_rewrite模块,因此我们需要先检测该模块是否安装,检测和安装方法与上面mod_deflate和mod_expires的一样,这里不多讲了。 防盗链配置: 一般我们都是将防盗链的配置,配置在虚拟主机里面,配置如下: ServerAdmin DocumentRoot /www/html ServerName www.sunsky.pw ServerAlias sunsky.pw CustomLog |/usr/local/sbin/cronolog /app/logs/www_access_%Y%m%d.log combined ErrorLog |/usr/local/sbin/cronolog /app/logs/www_error_%Y%m%d.log RewriteEngine On RewriteCond %{HTTP_REFERER} !^*$ [NC] RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} !^> AllowOverride None Options FollowSymLinks #不填写Indexes项,默认即为关闭。 Require all granted 第二种: AllowOverride None Options -Indexes #通过在Indexes前面加-来禁用此功能 Require all granted 第三种: AllowOverride None Options None #禁用所有选项 Require all granted 十二、禁用AllowOverride选项,关闭.htaccess文件使用 首先是性能考虑,如果AllowOverride启用了.htaccess文件,则apache需要在每个目录中查找.htaccess文件。因此,无论是否真正用到,启用.htaccess都会导致服务器性能的下降。另外,对于每一个请求,都需要读取一次.htaccess文件。 其次是安全考虑,这样会允许用户自己修改服务器的配置,这可能会导致某些意想不到的修改,所以请认真考虑是否应当给予用户这样的特权。 1、禁用AllowOverride选项 我们通过修改apache主配置文件中的 Options none AllowOverride None #禁止该选项,防止用户重复载入 Require all granted 通过该设置加快了服务器响应速度,因为它不再让每个请求去寻求每个目录的访问控制文件(.htaccess) 2、关闭.htaccess文件使用 默认在Unix平台下能够使用.htaccess来对目录权限进行规则定义,但是这是不安全的,建议关闭,默认的选项: AccessFileName .htaccess 这里我们将它关闭注释掉 #AccessFileName .htaccess 全部目录权限定义使用中的定义,不使用.htaccess进行定义。 十三、关闭自带CGI功能 生产环境中,一般我们不使用apache自带的cgi的功能,如果使用的话,可以用mod_perl模块来替代。因此我们这里需要将apache主配置文件中有关cgi的内容删除掉。 删除部分: ScriptAlias /cgi-bin/ /usr/local/apache2.4.6/cgi-bin/ AllowOverride None Options None Require all granted 十四、禁止PHP解析指定站点的目录 企业的站点有时会提供用户进行上传
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)
