方法1:修改apche目录配置:
1
2
3
4
5
6
| <Directory "D:/Apache/blog.phpha.com">
Options Indexes FollowSymLinks # 修改为: Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
|
只需要将上面代码中的 Indexes 去掉,就可以禁止 Apache 显示该目录结构
方法2 通过.htaccess文件
可以在根目录新建或修改 .htaccess 文件中添加
1
2
3
| <Files *>
Options -Indexes
</Files>
|
就可以禁止Apache显示目录索引。
修改如下配置文件:
1
2
3
4
5
6
7
8
| vim /usr/local/http-2.4.23/conf/extra/httpd-default.conf
找到:
ServerTokens Full
ServerSignature On
改成:
ServerTokens Prod
ServerSignature off
|
重启Apache并测试:
注意:如果你需要彻底将版本之类的信息进行改头换面,你就需要在编译之前做准备或者进行从新编译了。在重新编译时,修改源码包下include目录下的ap_release.h文件
1
2
3
4
5
6
7
| #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 23 #补丁级别
#define AP_SERVER_DEVBUILD_BOOLEAN 0 #
|
上述列出的行,已经给出了注释,大家可以修改成自己想要的,然后编译安装之后,对方就彻底不知道你的版本号了。
简介:
为什么要日志分割?
随着网站的访问越来越大,WebServer产生的日志文件也会越来越大,如果不对日志进行分割,那么只能一次将大的日志(如Apache的日志)整个删除,
这样也丢失了很多对网站比较宝贵的信息,因为这些日志可以用来进行访问分析、网络安全监察、网络运行状况监控等,
因此管理好这些海量的日志对网站的意义是很大的。
方法1:使用rotatelogs(apache自带的工具)每隔一天记录一个日志
①编辑Apache的主配置文件,更改内容如下:
注释掉如下两行:
1
2
| ErrorLog logs/error_log
CustomLog logs/access_log common
|
然后添加如下两行:
1
2
| ErrorLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/error_%Y%m%d.log 86400"
CustomLog "|/usr/local/http-2.4.23/bin/rotatelogs -l logs/access_%Y%m%d.log 86400" combined
|
注意:其中86400为轮转的时间单位为秒
②重启Apache验证:查看logs目录下的日志文件
注意:由于apache自带的日志轮询工具rotatelogs,据说在进行日志切割时容易丢日志,因此我们通常使用cronolog进行日志轮询。
方法2:使用 cronolog 为每一天建立一个新的日志
①下载安装cronolog程序
官网下载地址:http://cronolog.org/download/cronolog-1.6.2.tar.gz
1
2
3
| tar zxf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2/
/configure && make && make install
|
②安装完成后, Apache主配置文件添加如下两行:
1
2
| ErrorLog "|/usr/local/sbin/cronolog logs/error-%Y%m%d.log"
CustomLog "|/usr/local/sbin/cronolog logs/access-%Y%m%d.log" combined
|
如果Apache中有多个虚拟主机,最好每个虚拟主机中放置一个这样的代码,并将日志文件名改成不同的名字。
重启Apache验证,查看logs目录下的日志文件
注意:这两个管道日志文件程序还有一点不同之处是,使用cronolog 时如果日志是放在某个不存在的路径则会自动创建目录,而使用 rotatelogs 时不能自动创建,这一点要特别注意