time 
设为首页】【收藏本站
当前位置: 主页 > JAVA > Java高级 > 高级编程 > 【J2EE架构师】3、apache性能调优(4)

【J2EE架构师】3、apache性能调优(4)

时间:2012-11-07 23:33 点击:3271次 字体:[ ]




3.2 WindowsWindows系统下Apache 并发数的优化

以上是Linux/Unix下的Apache的并发数优化配置,如果我们打入了httpd –l如下显示:

【J2EE架构师】3、apache性能调优(4)_www.fengfly.com

 

怎么办?

ü   步骤一

先修改/path/apache/conf/httpd.conf文件。

httpd.conf

将“#Includeconf/extra/httpd-mpm.conf”前面的 “#” 去掉,保存。

ü   步骤二

再修改/apache安装目录/conf/extra/httpd-mpm.conf文件。

mpm_winnt模式下,Apache不使用prefork也不使用work工作模式,切记!

因此,我们只要找到原文件中:

<IfModule mpm_winnt_module>

    ThreadsPerChild      150

    MaxRequestsPerChild    0

</IfModule>

修改后

<IfModule mpm_winnt_module>

    ThreadsPerChild      500

    MaxRequestsPerChild    5000

</IfModule>

上述参数解释:

ü   ThreadsPerChild

是指一个进程最多拥有的线程数(Windows版本,貌似不可以开启多个进程),一般100-500就可以,根据服务器的具体性能来决定。

ü   MaxRequestsPerChild

是指一个线程最多可以接受的连接数,默认是0,就是不限制的意思,

0极有可能会导致内存泄露。所以,可以根据实际情况,配置一个比较大的值。Apache会在几个线程之间进行轮询,找到负载最轻的一个线程来接受新的连接。

注意:

修改后,一定不要apacherestart,而是先 apache stop 然后再 apache start才可以。

3.3 启用服务端图片压缩

对于静态的html 文件,在apache 可加载mod_deflate.so 模块,把内容压缩后输出,可节约大量的传输带宽。

打开httpd.conf文件,找到:

#LoadModule deflate_module modules/mod_deflate.so

将前面的“#”去掉,变成:

LoadModule deflate_module modules/mod_deflate.so

然后在最后一行的LoadModule处,加入如下的几行:

<IfModule mod_deflate.c>

 DeflateCompressionLevel 7

 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php

 AddOutputFilter DEFLATE css js

</IfModule>

注意:

默认等级是6,而且9级需要更多的CPU时间,用默认的6级就可以了。

要注意的是,在apache 2.2.15中,我用httpd -l看,居然发现mod_deflat已经内置了,所以其实就不用再在httpd.conf中增加loadmodule了,否则会说出错的

3.4 Apache中将MS办公文档自动关联客户端的MS-Office

我们经常会在web页的一个超链接上点一个指向物理文件的文档,我们一般会得到“保存,另存为,打开”,3个选项,当我们打开的如果是一个MS文档,在选“打开”选项时IE会自动启用客户端上装有的word或者是excel等相关MS办公工具去打开,这个怎么做呢?很简单。

打开httpd.conf,找到:

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

在其后敲入一个回车,加入:

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

重启Apache服务即可。

3.5 防止DDOS攻击

DDOS攻击即采用自动点击机器人或者连续点击工具不断的刷新某一个网址或者网页上的按钮,造成网站在一时间收到大量的HTTP请求,进而阻塞网站正常的HTTP通道甚至造成网站瘫痪。

【J2EE架构师】3、apache性能调优(4)_www.fengfly.com

 

为了防止这一形式的攻击,我们一般把在一个按钮或者是一个请求在一秒内连续执行如:100次,可以认为是一种攻击(比如说你打开一个网页,点一下提交按钮,然后按住F5键不松开)。

在Linux下的Apache HttpServer安装后会提供一个mod_evasive20的模块,用于防止这一形式的攻击,它的做法是:

如果认为是一个DDOS攻击,它的防范手段采用如下两种形势:

ü   把这个请求相关联的IP,封锁30分钟

ü   直接把相关的IP踢入黑名单,让其永不翻身

设置:

在你的Apache的httpd.conf文件中的最后一行“LoadModule”加入如下这句:

LoadModule evasive20_module   /usr/lib/httpd/modules/mod_evasive20.so

然后加入下面这几行

<IfModule mod_evasive20.c>

DOSHashTableSize 3097

DOSPageCount 15

DOSSiteCount 100

DOSPageInterval 1

DOSSiteInterval 1

DOSBlockingPeriod 36000

DOSEmailNotify 网站超级管理员@xxx.com

DOSLogDir "logs/mod_evasive"

</IfModule>

核心参数解释:

ü   DOSHashTableSize3097 记录黑名单的尺寸

ü   DOSPageCount 每个页面被判断为dos攻击的读取次数

ü   DOSSiteCount 每个站点被判断为dos攻击的读取部件(object)的个数

ü   DOSPageInterval 读取页面间隔秒

ü   DOSSiteInterval 读取站点间隔秒

ü   DOSBlockingPeriod 被封时间间隔秒

注意:

上述设置是针对Linux/Unix下的Apache Server,相关的Windows下的Apache见如下设置:

为Windows下的Apache加载mod_evasive模块

1. 下载附件中的压缩包,解压并拷贝mod_dosevasive22.dll到Apache安装目录下的modules目录(当然也可以是其他目录,需要自己修改路径)。

2. 修改Apache的配置文件http.conf。

添加以下内容

LoadModule dosevasive22_module modules/mod_dosevasive22.dll

DOSHashTableSize 3097

DOSPageCount 3

DOSSiteCount 50

DOSPageInterval 1

DOSSiteInterval 1

DOSBlockingPeriod 10



本文地址 : http://www.fengfly.com/plus/view-210106-1.html
标签: apache 性能调优 J2EE 架构师
------分隔线----------------------------
最新评论 查看所有评论
发表评论 查看所有评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
验证码: