LAMP调优
查看apache版本
#curl –I IP
生产环境中,部署了apache之后,我们应该从安全还是从性能方面,对其做诸多优化调试
防止别人看到系统版本,进行漏洞攻击
一.屏蔽apache版本信息,要彻底将版本之类的信息全部修改,需要进行重新编译,修改源码包下include目录下的ap_release.h文件
删除apache
#rm –rf /usr/local/src/httpd-2.2.25
解压
#tar zxvf httpd-2.2.25.tar.gz
#cd httpd-2.2.25
修改源码中的版本信息
#vim include/ap_release.h
改:
42 #define AP_SERVER_BASEVENDOR "ApacheSoftware Foundation"
43 #defineAP_SERVER_BASEPROJECT "Apache HTTP Server"
44 #defineAP_SERVER_BASEPRODUCT "Apache"
45
46 #defineAP_SERVER_MAJORVERSION_NUMBER 2
47 #defineAP_SERVER_MINORVERSION_NUMBER 2
48 #defineAP_SERVER_PATCHLEVEL_NUMBER 25
49 #defineAP_SERVER_DEVBUILD_BOOLEAN 0
为:
#define AP_SERVER_BASEVENDOR "it is notapache"
#define AP_SERVER_BASEPROJECT "webserver"
#define AP_SERVER_BASEPRODUCT "web"
#define AP_SERVER_MAJORVERSION_NUMBER 18
#define AP_SERVER_MINORVERSION_NUMBER 17
#define AP_SERVER_PATCHLEVEL_NUMBER 21
#define AP_SERVER_DEVBUILD_BOOLEAN 33
注释:
#define AP_SERVER_BASEVENDOR "Apache SoftwareFoundation" #服务的供应商名称
#define AP_SERVER_BASEPROJECT "Apache HTTPServer" #服务的项目名称
#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 #
注:上述列出的行,大家可以修改成自己想要的,然后编译安装之后,再对httpd-default.conf文件进行修改,对方就彻底不知道你的版本号了。
源码编译http://blog.youkuaiyun.com/qq_37392757/article/details/77532650
修改默认首页内容
#echoapache2.4>>/usr/local/apache2.4/hrdoc.index.html
启动apache
#service apache2.4 start
测试:#curl –I ip //看不到版本内容了
HTTP/1.1 200 OK
Date: Tus, 24 Aug 2017 09:43:44 GMT
Server: web/18.17.21.33-dev (Unix) mod_ssl/18.17.21.33-devOpenSSL/1.0.0-fips
Last-Modified: Tus, 24 Aug 2017 09:37:36 GMT
ETag: "****************"
Accept-Ranges: bytes
Content-Length: 58
Content-Type: text/html
可以看到版本信息已经被修改
再次修改
修改httpd.conf
#vim /usr/loacal/apache2.4/conf/httpd.conf
#405行取消注释
Include conf/extra/httpd-default.conf
:wq
修改httpd-default.conf文件,修改如下两个地方
#vim /usr/local/apache2.4/conf/extra/httpd-default.conf
改:
55 ServerTokens Full
65 ServerSignature On
为:
ServerTokens Prod
ServerSignature Off
:wq
重启apache服务
测试:#curl –I ip
HTTP/1.1200 OK
Date: Tus, 24 Aug 2017 09:55:31 GMT
Server: web
Last-Modified: Tus, 24 Aug 2017 09:37:36 GMT
ETag: "***********"
Accept-Ranges: bytes
Content-Length: 58
Content-Type: text/html
二.错误页面404等显示处理
1. 方案一:
修改根目录标签中的内容,添加
#vim /usr/loacal/apache2.4/conf/httpd.conf
132 <Directory"/usr/local/apache2.2-xuegod/htdocs">
。。。
在大约159行,插入:
ErrorDocument 404 /404.html
160 </Directory>
:wq
注:#将404错误跳转到/usr/local/apache2.2-xuegod/htdocs下的404.html页面上
注:ErrorDocument的命令格式如下:
ErrorDocument 错误代码 跳转到的页面链接或文件
创建404测试页
#echo“这货不是404” >/usr/local/apache2.4/htdocs/404.html
重启apache服务,并且打开网址查看eg:http://192.168.0.1/aaa.html
2. 方案二:
出错后,跳转到一个链接
修改根目录标签中的内容,添加
#vim /usr/loacal/apache2.4/conf/httpd.conf
132 <Directory"/usr/local/apache2.2-xuegod/htdocs">
。。。
在大约159行,插入:
ErrorDocument 404 http://www.baidu.com
160 </Directory>
:wq
#将404错误跳转到http://www.baidu.com
重启apache服务,并且打开网址查看eg:http://192.168.0.1/aaa.html
总结:ErrorDocument的命令格式如下:
ErrorDocument 错误代码 跳转到的页面或文件
另外这里需要注意,你若设置跳转到文件,必须要有这个文件才行。另外文件必须在站点目录内,不然会报错。
在跳转到文件的测试中,我用全路径和别名路径进行测试,当把404错误页面跳转文件放到其他目录的时候,不报错,但是页面跳转不过去。