Apache採用IBM HTTPServer,内核为Apache/2.0.47

Server version: IBM_HTTP_Server/6.1.0.13 Apache/2.0.47

 

查看IBM HTTPServer的版本号的命令

apache.exe -V   

./apachectl -V 4

 

注:IBM HTTPServer是包装Apache后增强了部分功能

普通Apache下的版本号查看命令

./apachectl –v

若新配置Apache,建议安装最新版本号的Apache

眼下最新版本号:2.2.26。可用Apache站点提供源代码在linux下进行编译

最新window的安装包:2.2.25

注:Apache已经推出2.4的版本号。对静态内容响应比2.2的版本号快。

 

主要针对下面变更

1、 trace方法的漏洞

2、 定义了404和403错误显示页面,取代了原来的默认页面

3、 取消了apache的返回显示签名,取消错误页面时的版本号显示。

4、 取消的文件夹内容列出的配置。

5、 Apache的内容输出压缩配置。

6、 Apache的status监控时默认地址的改动。

7、 Apache虚拟主机配置

8、 Apache默认的线程数的调整 含window和linux下

9、 Apache循环日志的设置

10、           Linux下Apache日志定时清除设置

11、           Apache的默认參数改动

12、           Apache的proxy功能启用

13、           Apache的缓存功能设置

 

在安装apache后。须要对默认配置进行改动。以增强一下默认的安全性配置。

每一个具体的配置步骤例如以下:

1、 针对Apache2.0.55曾经的版本号,须要进行例如以下改动

放开rewrite模块

   LoadModule rewrite_modulemodules/mod_rewrite.so

 

   添加例如以下配置

        RewriteCond %{REQUEST_METHOD} ^TRACE

        RewriteRule .* - [F]

 

   若是Apache 2.0.55版本号以上的apache,则需在http.conf中添加例如以下配置

TraceEnableOff

2、  定义404和403错误显示页面

在虚拟主机的配置处。添加例如以下配置,并将相应的错误页面复制到根文件夹下

     ErrorDocument 404 /404.html

 ErrorDocument 403 /403.html

 以覆盖默认的配置

3、  取消apache的版本号返回显示签名

在http.conf中搜索例如以下配置。将

ServerSignature On 改为 ServerSignature Off

 

眼下版本号apache均是将配置分散到多个conf文件里,可改动httpd-default.conf文件里的配置,注意在http.conf文件里将

#Include conf/extra/httpd-default.conf

改动为

Include conf/extra/httpd-default.conf,将#号取消

4、  取消文件夹内容列出配置

方法一,改动 httpd.conf配置文件,查找Options Indexes FollowSymLinks,改动为 Options -Indexes;

方法二,在www 文件夹下的改动.htaccess配置文件,增加Options -Indexes。 (推荐)

apache的配置是在虚拟主机的配置中例如以下配置

  <Directory"/xxx/www">

    Options –IndexesFollowSymLinks

   AllowOverride None

    Orderallow,deny

    Allow fromall

       </Directory>

  注意将FollowSymLinks清除掉,并将Indexs改为 -Indexs

5、  Apache的内容输出压缩配置

按例如以下配置进行页面压缩配置

LoadModuledeflate_module modules/mod_deflate.so

<IfModulemod_deflate.c>

           SetOutputFilter DEFLATE

            SetEnvIfNoCase Request_URI.(?

:gif|jpe?

g|png|bmp|swf|cab)$ no-gzip dont-vary

            SetEnvIfNoCase Request_URI.(?:exe|t?

gz|zip|bz2|sit|rar)$ no-gzip dont-vary

            SetEnvIfNoCase Request_URI.(?

:pdf|mov|avi|mp3|mp4|rm)$ no-gzip dont-vary

          # SetEnvIfNoCase Request_URI/.(gif|jpg|cab|jpe?g|exe|bmp|mp3|rar|zip|swf|png)$ no-gzip dont-vary

 

            AddOutputFilterByType DEFLATEtext/html text/plain text/xml text/css text/javascript

            AddOutputFilterByType DEFLATEapplication/ms* application/vnd* application/postscript application/javascriptapplication/x-javascript

            SetEnvIf User-Agent ^Mozilla/4 gzip-only-text/html

            SetEnvIf User-Agent ^Mozilla/4/.0[678]no-gzip

            SetEnvIf User-Agent \bMSIE !no-gzip

            SetEnvIf User-Agent \bMSIE!gzip-only-text/html

          # SetEnvIfNoCase Request_URI/.(gif|jpg|cab|jpe?

g|exe|bmp|mp3|rar|zip|swf|png)$ no-gzip dont-vary

     DeflateCompressionLevel 9

</IfModule>

6、  Apache的status监控时默认地址的改动

Apache中的默认设置为

  <Location /server-status>

    SetHandler server-status

    Order deny,allow

#    Deny from all

    Allow from .localhost

</Location>

此种设置不安全,假设启用status监控须要改动默认地址。若启动虚拟主机,则在每一个虚拟主机节点中进行配置,方有效。即在

<VirtualHost *:80>

  <Location /test-server-status>

    SetHandler server-status

    Order deny,allow

#    Deny from all

    Allow from .localhost

</Location>

</VirtualHost >

之间配置

若无虚拟主机则正常配置

<Location /test-server-status>

    SetHandler server-status

    Order deny,allow

#    Deny from all

    Allow from .localhost

</Location>

       将server-status的默认值须要改动一下。避免此处的安全漏洞

注:若要启动扩展状态监控

即  配置

ExtendedStatus On 

注意:

ExtendedStatus On不能配置在单独的虚拟主机节点内,须要在httpd.conf中配置

可參考: httpd-info.conf文件里的配置

 

7、  Apache的虚拟主机配置

NameVirtualHost *:80

 

<VirtualHost *:80>

       ServerName www.test.cn

       ServerAlias www.test.edu.cn

       DocumentRoot /test/www

       AddDefaultCharset Off

 

  <Directory"/test/www">

    Options-Indexes

   AllowOverride None

    Orderallow,deny

    Allow fromall

 </Directory>

  ErrorDocument404 /404.html

  ErrorDocument403 /403.html

</VirtualHost>

       虚拟主机按以上进行配置,对于新版本号的apache注意将

  # Virtual hosts

  #Include conf/extra/httpd-vhosts.conf

处进行改动

Includeconf/extra/httpd-vhosts.conf

在httpd-vhosts.conf文件里进行虚拟主机的配置

8、  Apache默认线程数调整

对2.2版本号的apache,在httpd.conf文件里将

  # Include conf/extra/ httpd-mpm.conf改动为

  Include conf/extra/ httpd-mpm.conf

 并在此文件里寻找到此处

# WinNT MPM

# ThreadsPerChild:constant number of worker threads in the server process

#MaxRequestsPerChild: maximum  number ofrequests a server process serves

<IfModulempm_winnt_module>

    ThreadLimit          2000

    ThreadsPerChild      2000

    MaxRequestsPerChild    100

</IfModule>

  此处是将线程的限制改动到2000。注意window改动2000的限制在window下会报一些错误,由于window下默认达不到2000。一般仅仅能到1912左右。要想突破2000的限制。须要使用ThreadLimit指令

    Linux下须要对下面模块设置,linux下Apache默认工作模式是prefork

可通过 ./apachectl –l来查看apache的工作模式

Window下通过 httpd.exe –l来查看

注:须要在apache的安装文件夹下的bin文件夹中

# prefork MPM

# StartServers: number of server processesto start

# MinSpareServers: minimum number of serverprocesses which are kept spare

# MaxSpareServers: maximum number of serverprocesses which are kept spare

# MaxClients: maximum number of serverprocesses allowed to start

# MaxRequestsPerChild: maximum number ofrequests a server process serves

<IfModule mpm_prefork_module>

   StartServers          5

   MinSpareServers       5

   MaxSpareServers      10

   MaxClients          150

   MaxRequestsPerChild   0

</IfModule>

     Linux下若调整线程数则调整以上数字。重点调整MaxClients

   配置例子,须要依据机器的配置进行调整:

 <IfModulempm_prefork_module>

   StartServers          10

   MinSpareServers      10

   MaxSpareServers      20

   MaxClients          1500

   MaxRequestsPerChild  10000

</IfModule>

 

9、  Apache循环日志配置

Linux下的配置例子:

/usr/local/apache 为apache的安装文件夹,依据实际情况改动

ErrorLog "| /usr/local/apache/bin/rotatelogs /usr/local/apache/logs/%Y_%m_%d_test-error.log86400 480"

CustomLog "logs/test-access.log" common

 

Window下配置

ErrorLog "| bin/rotatelogs.exe logs/%Y_%m_%d_test-error.log 86400480"

 

10、           Linux下Apche日志定时清除

按下面配置就可以

1、root用户登录,检查crond服务的执行情况

 

[root@CentOS-APP2]#service crond status

crond (pid  3698) 正在执行...

 

若没执行,则

service crondstart

 

2、在/usr/local/testweb下编写运行脚本

 

vi clean-log

 

拷贝例如以下脚本:

#! /bin/sh

#cd $(dirname $0)|| exit 1

logdir=/usr/local/apache/logs/test-com/

cd ${logdir}

declare -ifilesum=`ls test_access* |wc -l`

declare -idelnum=$filesum-30

#echo ${delnum}

if [ "${delnum}"-ge 1 ]; then

 rm -rf `ls -tr test_access* | head -${delnum}`

fi

declare -i filesumerr=`lstest_error* |wc -l`

declare -idelnumerr=$filesumerr-30

if [ "${delnumerr}"-ge 1 ]; then

 rm -rf `ls -tr test_error* | head-${delnumerr}`

fi

 

拷贝脚本时,请注意日志文件夹的实际位置和要清理的日志文件的命名格式。须要保持一致

 

这里的日志文件夹:

/usr/local/apache/logs/test-com/

 

要清理的日志格式:

test_access_20131223.log

test_error_20131223.log

 

设定要清理的日志数量,设定为30。超过30个日志文件则清理

3、设定执行权限

cd /usr/local/testweb

chmod 755clean-log

 

4、设定定时执行

设定为每月30日晚1点30分定时运行

 

30 1 30 * */usr/local/testweb/clean-log

 

/usr/local/testweb/clean-log  为编写好的日志清除脚本

设定方法:

root用户登录后运行:

crontab -e

 

打开一个文件,用vi的方式进行编辑

 

输入

30 1 30 * */usr/local/testweb/clean-log

 

然后:wq退出保存

 

可在/var/spool/cron/文件夹下看到此文件

root

与所设定的username一致

5、运行

service crondreload  又一次载入配置执行

6、測试

 

測试时能够运行

crontab -e 编辑设定的文件,添加例如以下配置,每分钟定时,可先改动脚本,将日志文件数降低。如将30变为3

 

*/1 * * * */usr/local/testweb/clean-log

 

能够在/usr/local/apache/logs/test-com/文件夹下用vi命令按test_access_20131202.log的文件命名格式来建若干个空文件,以測试是否可定时删除文件

能够tail -n 100 /usr/spool/mail/root 查看错误

tail -f /var/log/cron  查看执行日志

11、           Apache默认參数改动

改动此文件

Include conf/extra/httpd-default.conf

作例如以下改动:

l       ServerTokensFull   改动为  ServerTokens Prod

l       Timeout300  可改动为 Timeout 100

l       MaxKeepAliveRequests100  可依据机器配置适当加大

 

12、           Apache的proxy功能启用

启用代理须要在httpd.conf文件放开下面两个模块

 

LoadModule proxy_module modules/mod_proxy.so

LoadModule proxy_http_module modules/mod_proxy_http.so

 

然后启用虚拟主机,在此句之后

NameVirtualHost*:80

 

添加例如以下:

<VirtualHost *:80>

       ProxyPreserveHost On

       ProxyPass /  http://172.16.0.2:9090/portal/

        ProxyPassReverse/  http://172.16.0.2:9090/portal/

       ServerName test.xxx.cn

       ServerAlias test.xxx.edu.cn

    </VirtualHost>

13、           Apache的缓存功能设置

Apache的缓存功能须要开启下面模块

#LoadModule cache_module modules/mod_cache.so

#LoadModule mem_cache_module modules/mod_mem_cache.so

缓存有两种:1、内存中缓存;2、磁盘缓存

此处解说内存中缓存

配置例子:

 

<IfModulemod_cache.c>

    <IfModule mod_mem_cache.c>

        CacheEnable mem /image       #要缓存文件夹

        CacheEnable mem /images

        CacheEnable mem /js

        CacheEnable mem /style

           CacheEnable mem /css

        CacheEnable mem /script

        CacheEnable mem /swf

        CacheEnable mem /file

        MCacheMaxObjectCount 20000    #缓存对象数量

        MCacheMaxObjectSize 1048576   #缓存对象最大大小 字节

        MCacheMaxStreamingBuffer 65536

        MCacheMinObjectSize 10         #缓存对象最小大小 字节

        MCacheRemovalAlgorithm LRU    #缓存的算法

        MCacheSize 2097152            #缓存的大小 kb

        CacheMaxExpire 14400          #缓存最大过期时间

        CacheDefaultExpire 14400

    </IfModule>

</IfModule>

 

配置说明:

1,CacheEnablemem /images 缓存images以下的内容,这里的 mem仅仅是一个缓存类型,指示mod_cache使用内存的存储管理器通过实施mod_mem_cache 。缓存类型disk指示mod_cache使用基于磁盘的存储管理的实施mod_disk_cache 。缓存类型,fd指示mod_cache使用文件描写叙述符缓存实施mod_mem_cache

2,MCacheSize最大内存使用量,插入在缓存和对象大小的对象是大于剩余内存,将被删除,直到新的对象能够被缓存。 被删除的对象选择使用指定的算法MCacheRemovalAlgorithm

 

3,MCacheRemovalAlgorithm缓存算法:

LRU (近期最少使用)

LRU删除文件,没有时间最长的被訪问的。

GDSF(GreadyDual尺寸)

GDSF分配一个优先的文件缓存文件的费用的基础上。缓存大小。以最低的优先权文件被删除第一次。

4,MCacheMaxObjectCount最大缓存对像个数

 

5。MCacheMaxObjectCount最大缓存对像字节数

 

6,MCacheMinObjectSize最小缓存对像字节数

 

7。CacheMaxExpire最大缓存结止时间

 

8,CacheDefaultExpire  默认缓存结止时间

 

9,CacheDisable/php       不要缓存php以下内容

版权声明:本文博主原创文章,博客,未经同意不得转载。

Apache经常使用配置的更多相关文章

  1. linux下安装apache与php;Apache+PHP+MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  2. Apache多站点配置及启动失败解决办法

    一. Apache多站点配置方法 1.打开Apache安装目录下conf/httpd.conf文件,找到下面两行文字,把最前面的 # 号去掉,然后保存. #LoadModule vhost_alias ...

  3. Apache安装及配置ssl

    目录 1.windows安装 软件准备 安装apache 开启ssl(Https访问) 打开httpd.conf,解除下面配置的注释 查看ssl模块使用哪一个配置文件 配置https虚拟主机 简单配置 ...

  4. 配置apache apache服务器如何配置多站点

    http://jingyan.baidu.com/article/5225f26b07605be6fa090890.html 让Apache在启动时能加载虚拟主机模块. 打开Apache安装目录下co ...

  5. wamp apache 的虚拟机配置 多域名访问 的 三部曲

    wamp apache 的虚拟机配置 多域名访问 的 三部曲 wamp:       1:C:\WINDOWS\system32\drivers\etc->hosts         加入自己的 ...

  6. windows下PHP与Apache的安装配置

    1.下载安装apache:官网 http://httpd.apache.org/download.cgi#apache24 下载httpd-2.2.25-win32-x86-no_ssl.msi并安装 ...

  7. apache多站点配置

    apache多站点配置 临时需要个测试站,然后就到apache中配置vhosts,结果这货总是显示"拒绝了你的请求",找半天发现居然还要添加端口监听 vhosts.conf 添加v ...

  8. Apache虚拟主机配置

    在一个Apache服务器上可以配置多个虚拟主机,实现一个服务器提供多站点服务,其实就是访问同一个服务器上的不同目录.Apache虚拟主机配置有3中方法:基于IP配置.基于域名配置和基于端口配置,这里介 ...

  9. nginx 反向代理 与 Apache backend的配置联合配置

    nginx 反向代理 与 Apache backend的配置联合配置: 说明: nginx 将http映射到Apache上的特定子目录. 配置方法步骤: 1.  设置域名, 子域名映射到指定服务器ip ...

  10. Windows下Apache+mod_python+Django配置

    Windows下Apache+mod_python+Django配置 Apache 首先要安装Apache,我安装的版本是2.2.*: Python python肯定是要安装的,我安装的版本是2.5的 ...

随机推荐

  1. Linux 零碎知识点

    ln -s ../libs/ libs 在当前目录下建立一个符号链接文件libs,使它指向上一层目录的libs文件夹 关于su和su -的区别切换用户是可以使用su tom或者su - tom来实现, ...

  2. Hadoop 4、Hadoop MapReduce的工作原理

    一.MapReduce的概念 MapReduce是hadoop的核心组件之一,hadoop要分布式包括两部分,一是分布式文件系统hdfs,一部是分布式计算框就是mapreduce,两者缺一不可,也就是 ...

  3. iOS伪实现打地鼠游戏

    打地鼠是一款可以用iOS知识来实现的一种游戏.其核心技术就是通过imageView来播放动画,点击button时来停止当前播放的动画开始击打地鼠的动画.话不多说直接上代码. 这是添加当前的背景图片,然 ...

  4. C#中MessageBox用法总结

    我们在程序中经常会用到MessageBox. MessageBox.Show()共有21中重载方法.现将其常见用法总结如下: 1.MessageBox.Show("Hello~~~~&quo ...

  5. Java替代C语言的可能性

        前不久CSDN刊登了一篇<C语言已经死了>的文章,引起了一些争论.事实上那篇文章是从Ed Burnette的博客上转载来的,原文题目是“Die, C, die!”,直译过来应该是& ...

  6. 【最大点权独立集】【HDU1565】【方格取数】

    题目大意: 给你一个n*n的格子的棋盘,每个格子里面有一个非负数. 从中取出若干个数,使得任意的两个数所在的格子没有公共边,就是说所取的数所在的2个格子不能相邻,并且取出的数的和最大. 初看: 没想法 ...

  7. case in esac ` for in do done ` while true / false

    case  in esac  `  for in do done   `   while true / false ` if {} fi

  8. JavaScript 【跨浏览器XPath,做个兼容】

    IE的Xpath 获取单一节点 var xmlDom = getXMLDOM(xmlStr);//调用之前写好的方法获得XMLDOM对象 // var node = xmlDom.selectSing ...

  9. Sublime 学习记录(四) Alignment 插件

    1)  Alignment 插件的安装 打开命令面板 输入pci 回车 输入Alignment 回车安装好即可 2)  Alignment 用处 用于代码对齐 3) Alignment 快捷键 默认为 ...

  10. 关于ASP.NET中的负载均衡

    ASP.NET站点中做负载均衡: 基于HTTP协议我们可能发现我们要解决两点问题: 第一做到负载均衡,我们需要一个负载均衡器. 可以通过DNS轮询来做,在DNS服务器上配置为每次对我们做负载均衡的同一 ...