前面两篇博文解说了apache的布置和装备等方面常识,本篇将为咱们具体解说出产环境中对apache服务各个方面的优化调试。
出产环境中,咱们必定不会布置了apache之后就完事拿去上线了。光杆子上战场等着完蛋的嘛!因而,不管从安全仍是功用视点,咱们必须在apache服务上线之前,对其做许多的优化调试才行。因而,本篇笔者经过总结自己的学习和工作经验,概括总结出的apache调优的20个小点。
本文篇幅有点长,本来想分隔写了,后来想想仍是放在一篇博文吧。因而,咱们就谅解谅解吧。
环境:
CentOS6.4 x86_64位 选用最小化装置,体系经过了根本优化篇
apache版别:
apr版别:apr-1.4.8
apr-util版别:apr-util-1.5.2
pcre版别:pcre-7.8
源码包寄存方位:/server/tools
源码包编译装置方位:/etc/local/软件称号
一、源码官方下,补丁及时打
正如咱们在apache布置篇讲到的咱们需求对下载的源码包进行验证相同,咱们在选择apache源码装置包的时分,一定要去官网,不要去杂乱无章的站点进行下载,避免源码包被心怀叵测的人动过手脚,导致后边对公司事务形成不必要丢失。
别的为了apache的安全性和功用考虑,咱们一定要多多重视apache的官网的补丁发布状况,一旦有新的补丁,咱们一定要及早打上。特别是一些安全补丁,避免遭到丢失。
二、屏蔽apache版别等灵敏信息
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)翻开文件,修正如下两个当地
[root@sunsky /]# grep Server conf/extra/|grep -v #
ServerTokens full
ServerSignature Off
修正为
ServerTokens Prod
ServerSignature Off
经过上面的修正,当你在curl-Iwww.sunsky.pw的时分,仍是会出现下面的信息
Server: Apache
完全让版别等灵敏信息消失
假如你需求完全将版别之类的信息进行面目一新,你就需求在编译之前做准备或许进行从头编译了。在从头编译时,修正源码包下include目录下的ap_release.h文件
#define AP_SERVER_BASEVENDOR Apache Software Foundation #服务的供货商称号
#define AP_SERVER_BASEPROJECT Apache HTTP Server #服务的项目称号
#define AP_SERVER_BASEPRODUCT Apache #服务的产品名
#define AP_SERVER_MAJORVERSION_NUMBER 2 #首要版别号
#define AP_SERVER_MINORVERSION_NUMBER 4 #小版别号
#define AP_SERVER_PATCHLEVEL_NUMBER 6 #补丁等级
#define AP_SERVER_DEVBUILD_BOOLEAN 0 #
上述列出的行,我现已给出了注释,咱们能够修正成自己想要的,然后编译装置之后,再对文件进行修正,对方就完全不知道你的版别号了。
三、更改apache的默许用户
咱们经过更改apache的默许用户,能够提高apache的安全性。这样,即便apache服务被攻破,黑客拿到apache普通用户也不会对体系和其他运用形成损坏。这儿创立的apache用户,将用于对子进程和线程的操控。
[root@c64-web /]# useradd -M -s /sbin/nologin apache 创立apache用户
修正apache装备文件,修正默许的用户。
[root@c64-web /]# vim /usr/local/apache/conf/
User apache #更改默许的daemon用户为apache用户
Group apache #更改默许的daemon用户为apache用户
四、apache目录及文件权限设置
在出产环境的网站架构中,咱们应把资源文件,例如用户上传的图片及附件等和程序做好别离,最好是把上传程序也别离开来。这样才干更便利咱们做好授权,确保apache服务和整个服务器安全。
这儿咱们设置apache的网站目录属主和属组是root,权限是755,文件的权限为644。
lrwxr-xr-x 1 root root 23 11月 5 02:04 apache -> /usr/local/apache-2.4.6
drwxr-xr-x 14 root root 4096 11月 5 12:37 apache-2.4.6
而且,在对日志的授权商,咱们要将属主和属组都设置为root,权限设置为700。
drwx—— 2 root root 4096 11月 5 02:46 logs
因为apache日志的记载是由apache的主进程进行操作的,而apache的主进程又是root用户发动的,所以这儿设置700是不影响日志记载了。这也是日志记载的最安全的办法。
五、装备cronolog进行日志轮询
因为apache自带的日志轮询东西rotatelogs,据专家说在进行日志切开时简单丢日志,因而咱们一般运用cronolog进行日志轮询。
1、下载并装置cronolog
[root@sunsky /]# cd /server/tools/
[root@sunsky tools]# wget
[root@sunsky tools]# tar zxf cronolog-1.6.2.tar.gz
[root@sunsky tools]# cd cronolog-1.6.2
[root@sunsky cronolog-1.6.2]# ./configure
[root@sunsky cronolog-1.6.2]# makemake install
2、装备apache运用cronolog
因为试验用的apache敞开了虚拟主机功用,所以以下典范装备都在虚拟主机中进行。
[root@sunsky cronolog-1.6.2]# vim /usr/local/apache/
将装备文件中的CustomLog和ErrorLog替换为下面的(因为咱们要对多站点,所以这儿要替换两个虚拟主机的,而且将日志寄存姓名做有用的区别才好)
CustomLog |/usr/local/sbin/cronolog /app/logs/sunsky_access_%Y%m%d.log combined
ErrorLog |/usr/local/sbin/cronolog /app/logs/sunsky_error_%Y%m%d.log
更多日志格局参阅:
按天轮询(出产环境常见用法,引荐运用):