第三篇、调优之路 Apache调优

 1.  简介

          在第一篇中整合了apache + tomcat ,利用了apache解析静态文件为tomcat解压。但是在测试机上发现两者性能不足,不能充分利用服务器的性能,该篇中将对apache进行性能上调优 。

这里的调优针对的是window 平台下 ,linux下apache的调优后续再说.

 2. apache调优

         2.1 移除不用的模块

                  apache的功能相当强大,但不是在每个项目中都能用到其所有的功能,其中加载了一些我们通常用不到的模块,这其实是没有必要的 。  

         去除不用的模块方法很简单,通过#来注释httpd.conf文件下加载的模块,切记在注释加载模块一个一定一定要Test Configuration 一下,否则到时候出差错了都不知道从哪里下手了.通常去掉

         的模块有:  mod_include.so 、mod_autoindex.so等 ,可自行尝试。当然在性能运行的情况下,不执行该操作.

      

         2.2  设置线程参数

                   在httpd.conf配置中找到 #LoadModule vhost_alias_module modules/mod_vhost_alias.so 在后面加入:

<IfModule mpm_winnt_module>
    ThreadsPerChild      300
    MaxRequestsPerChild    3000
</IfModule>

 

                   ★ ThreadsPerChild   一个进程最多拥有的线程数  range[100-500]    

                   ★ MaxRequestsPerChild 一个线程最多可接受的连接数,默认为0 可能会导致内存泄漏,Apache存在轮询机制,会自动调节

 

         2.3  启动Apache输出压缩

                     加载mod_deflate.so模块,去掉#

LoadModule deflate_module modules/mod_deflate.so

 

                    然后在<IfModule mpm_winnt_module>...</IfModule> 后面追加如下配置:

<IfModule mod_deflate.c>
 DeflateCompressionLevel 6
 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
 AddOutputFilter DEFLATE js css
</IfModule>

 

           2.4   安全之Deny    

                     通过Deny来禁止若干文件的访问(提高安全性) ,其用法如下: 

 

         2.5    安全之防止dos攻击

       存在mod_dosevasive22.dll 可防止网络上页面进行dos攻击(例如:机器人不断刷新指定网页,不断访问)。 下载该dll文件后放置在modules ,修改httpd.conf文件

在文件尾追加如下文件:

         

LoadModule dosevasive22_module modules/mod_dosevasive22.dll
DOSHashTableSize 3000
DOSPageCount 3
DOSSiteCount 50
DOSPageInterval 1
DOSSiteInterval 1
DOSBlockingPeriod 10

 

       

            其中:              

                ★ DOSHashTableSize 3000 黑名单总数

                ★ DOSPageCount  页面被攻击次数为该值时会判断为dos攻击

                ★ DOSSiteCount  站点被攻击次数为该值时会判断为dos攻击 

                ★ DOSPageInterval  读取页面间隔

                ★ DOSSiteInterval  读取站点间隔

                ★ DOSBlockingPeriod  访问IP被封时间间隔

  时间单位为

      配置完成以后关闭apache 然后启动   

   启动第一篇中配置的tomcat,访问http://localhost/WebDemo/ 得到

 

    按住F5不停刷新页面,得到

       10秒后可继续访问。

 

       2.6 修改默认配置参数

        在httpd.conf中搜索httpd-default.conf ,放开对其配置

Include conf/extra/httpd-default.conf

 

       在该文件中存在了对apache的默认配置参数  

       

#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout 300

#
# KeepAlive: Whether or not to allow persistent connections (more than
# one request per connection). Set to "Off" to deactivate.
#
KeepAlive On

 

       先说KeepAlive: 表示用户请求完成后是否需要维持一个TCP连接  ;

            on  :表示请求完成时保持一个与服务器的TCP连接,如果还有请求,则在该连接中完成,无需重复建立连接,维持的时候为上面设置的Timeout时间(毫秒)  

            off  : 表示请求完成以后立即关闭连接 

      两者差异 :

    on :需要消耗更多的内存,但是提高访问速度,在页面中js,css,img图片较多的时候建议开启

           off :对内存消耗少,在页面每次由app server动态生成时,建议设置为off

#
# MaxKeepAliveRequests: The maximum number of requests to allow
# during a persistent connection. Set to 0 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests 100

#
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout 5

 

 

   MaxKeepAliveRequests 不要设置为0 (0为不限制),容易导致内存异常 .服务器性能较高可适当调整,建议保持默认


注释AccessFileName
#AccessFileName .htaccess

 

 ServerSignature 设置为off 可防止服务器广播敏感信息 默认为on 


HostnameLookups 设置为on 可减少DNS查询次数 .

    2.7 监听端口

        默认情况下 apache 监听为80 端口,在实际中最好是指定监听具体的应用对应的 ip地址:80  即:

Listen  xxx.xxx.xxx(具体的ip) :80

 

        因为服务器可能拥有多个ip地址,这样会倒置安全性降低 。这种情况应该很少见

 

 

    2.8 关联计算机Office软件 

        在应用中经常要打开或者下载附件,例如word ,excel 等 可通过一下设置关键到本地的Office软件来打开

        在 AddType application/x-gzip .gz .tgz  后追加

AddType application/vnd.openxmlformats  docx pptx xlsx doc xls ppt txt

 

 

     2.9  清除注释

          这是最简单的操作,没有技术含量,将httpd.conf文件中所有的注释信息全部删掉 ,保持一个“纯洁”的配置.  嘿嘿...

 

 

     此篇到此结束!

    

     备注:性能优化要通过实际操作来校验的,不能想当然... 那啥来着 实践是检验真理的唯一标准...

 

转载于:https://www.cnblogs.com/liaokailin/p/3967421.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
安装方法: 1、下载附件中的压缩包,解压并拷贝mod_dosevasive22.dll到Apache安装目录下的modules目录(当然也可以是其他目录,需要自己修改路径)。 2、修改Apache的配置文件http.conf。 添加以下内容 LoadModule dosevasive22_module modules/mod_dosevasive22.so DOSHashTableSize 3097 DOSPageCount 3 DOSSiteCount 50 DOSPageInterval 1 DOSSiteInterval 1 DOSBlockingPeriod 10 其中DOSHashTableSize 3097 记录黑名单的尺寸 DOSPageCount 3 每个页面被判断为dos攻击的读取次数 DOSSiteCount 50 每个站点被判断为dos攻击的读取部件(object)的个数 DOSPageInterval 1 读取页面间隔秒 DOSSiteInterval 1 读取站点间隔秒 DOSBlockingPeriod 10 被封时间间隔秒 mod_dosevasive v1.10 什么是mod_dosevasive? mod_dosevasive是一种提供躲避 HTTP DOS/DDOS攻击或暴力强制攻击的apache模块。它同样可以用作网络探测和管理的工具,通过简单的配置,就可以同ipchains(ip链?)防 火墙,路由器等设备进行对话。并通过email或系统日志提供报告。 发现攻击是通过创建一个内建的IP地址和URIs的动态哈希表来完成,并且阻止同一ip在以下的情况: 1.在同一秒多次请求同一页面 2.对同一child(对象?)作出超过50个并发请求 3.被列入黑名单的ip 这种方式在单点攻击和分布式多点攻击的状况下都能很好工作,但如同其它的防黑软件一样,只是针对于那些对网络带宽和处理器消耗的攻击,所以这就是为什么我们要推荐你将它与你的防火墙和路由器配合使用,因为这样才能提供最大限度的保护。 这 个模块有一个内建的滤除机制和级别设定,对付不同情况,正因如此合法请求不会受到妨碍,即使一个用户数次连击“刷新”,也不会受到影响,除非,他是故意这 样做的。mod_dosevasive完全可以通过apache配置文件来配置,很容易就可以集成到你的web服务器,并且容易使用。 DOSHashTableSize ---------------- 哈希表的大小决定每个子级哈希表的顶级节点数,越多则越可避免反复的查表,但会占据更多内存,如果你的服务器要应付很多访问,那就增大它。The value you specify will automatically be tiered up to the next prime number in the primes list (see mod_dosevasive.c for a list of primes used). DOSPageCount ------------ 规定请求同一页面(URI)的时间间隔犯规的次数,一旦超过,用户ip将被列入黑名单 DOSSiteCount ------------ 规定请求站内同一物件的时间间隔犯规的次数,一旦超过,用户ip将被列入黑名单 DOSPageInterval --------------- 同一页面的规定间隔时间,默认为1秒 DOSSiteInterval --------------- 站内同一物件的时间间隔,默认为1秒 DOSBlockingPeriod ----------------- The blocking period 是规定列入黑名单内ip的禁止时限,在时限内,用户继续访问将收到403 (Forbidden)的错误提示,并且计时器将重置。由于列入黑名单后每次访问都会重新计时,所以不必将时限设置太大。在Dos攻击下,计时器也会保持 重置 DOSEmailNotify -------------- 假如这个选项被设置,每个ip被列入黑名单时,都将发送email通知。但有机制防止重复发送相同的通知 注意:请确定mod_dosevasive.c (or mod_dosevasive20.c)已正确配置。 默认配置是 "/bin/mail -t %s" %s 是email发送的目的地址,假如你是linux或其它使用别的邮箱的操作系统,你需要修改这里 DOSSystemCommand ---------------- 假如设置了此项,当有ip被列入黑名单,指定的系统命令将被执行,此项功能被设计为受攻击时可以执行ip过滤器和其它的工具软件,有内建机制避免对相同攻击作重复反应 用
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值