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 在后面加入:

  1. <IfModule mpm_winnt_module>
  2. ThreadsPerChild 300
  3. MaxRequestsPerChild
  4. </IfModule>

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

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

2.3  启动Apache输出压缩

加载mod_deflate.so模块,去掉#

  1. LoadModule deflate_module modules/mod_deflate.so

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

  1. <IfModule mod_deflate.c>
  2. DeflateCompressionLevel
  3. AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
  4. AddOutputFilter DEFLATE js css
  5. </IfModule>

2.4   安全之Deny

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

2.5    安全之防止dos攻击

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

在文件尾追加如下文件:

  

  1. LoadModule dosevasive22_module modules/mod_dosevasive22.dll
  2. DOSHashTableSize
  3. DOSPageCount
  4. DOSSiteCount
  5. DOSPageInterval
  6. DOSSiteInterval
  7. DOSBlockingPeriod

其中:

★ DOSHashTableSize 3000 黑名单总数

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

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

★ DOSPageInterval  读取页面间隔

★ DOSSiteInterval  读取站点间隔

★ DOSBlockingPeriod  访问IP被封时间间隔

时间单位为秒

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

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

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

10秒后可继续访问。

2.6 修改默认配置参数

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

  1. Include conf/extra/httpd-default.conf

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

  1. #
  2. # Timeout: The number of seconds before receives and sends time out.
  3. #
  4. Timeout
  5.  
  6. #
  7. # KeepAlive: Whether or not to allow persistent connections (more than
  8. # one request per connection). Set to "Off" to deactivate.
  9. #
  10. KeepAlive On

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

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

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

两者差异 :

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

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

  1. #
  2. # MaxKeepAliveRequests: The maximum number of requests to allow
  3. # during a persistent connection. Set to to allow an unlimited amount.
  4. # We recommend you leave this number high, for maximum performance.
  5. #
  6. MaxKeepAliveRequests
  7.  
  8. #
  9. # KeepAliveTimeout: Number of seconds to wait for the next request from the
  10. # same client on the same connection.
  11. #
  12. KeepAliveTimeout
  1. MaxKeepAliveRequests 不要设置为0 0为不限制),容易导致内存异常 .服务器性能较高可适当调整,建议保持默认
  2.  
  3. 注释AccessFileName
  1. #AccessFileName .htaccess
  1.  ServerSignature 设置为off 可防止服务器广播敏感信息 默认为on
  2.  
  3. HostnameLookups 设置为on 可减少DNS查询次数 .

2.7 监听端口

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

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

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

2.8 关联计算机Office软件

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

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

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

2.9  清除注释

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

此篇到此结束!

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

第三篇、调优之路 Apache调优的更多相关文章

  1. PHP 性能分析第三篇: 性能调优实战

    注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或  PHP 性能分析第二篇: 深入研究 XHGui. 在本系列的 ...

  2. Apache调优(二)

    Apache调优(一) (1).Apache运行模式说明 Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式:Prefork(进程模式).Wo ...

  3. LAMP之Apache调优

    一.环境的搭建 实验环境: 操作系统:Centos 7.4 [root@xuegod70 ~]# ls apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2. ...

  4. 三篇文章带你极速入门php(三)之php原生实现登陆注册

    看下成果 ps:纯天然h5,绝不添加任何添加剂(css)以及化学成分(js)(<( ̄ ﹌  ̄)我就是喜欢纯天然,不接受任何反驳) 关于本文 用原生的php和html做了一个登陆注册,大概是可以窥 ...

  5. TDSQL|三篇论文入选国际顶会SIGMOD,厉害了腾讯云数据库

    好消息!6月13日,腾讯云数据库三篇论文再次入选数据库行业顶会SIGMOD,被SIGMOD 2022 Research Full Paper(研究类长文)收录. 本次被收录的研究成果中,新型数据结构设 ...

  6. 一年三篇IF大于7的牛人告诉你怎么写SCI

    一年三篇IF大于7的牛人告诉你怎么写SCI 1 研究生必备四本 俗话说好记性不如烂笔头,所以一定要首先养成做笔记的好习惯!作为研究生下面这几个本子是必不可少的: 1.实验记录本(包括试验准备本),这当 ...

  7. Android群英传帝落篇——程序人生,路漫漫其修远兮,吾将上下而求索!

    Android群英传帝落篇--程序人生,路漫漫其修远兮,吾将上下而求索! 当写这篇博客的时候,自2016-02-22到现在5.2号,一晃眼,也㓟两个多月就过去了,我才将这本书看完,虽然写笔记花了很大的 ...

  8. OCM_第十四天课程:Section6 —》数据库性能调优_各类索引 /调优工具使用/SQL 优化建议

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  9. 第三篇 功能实现(2) (Android学习笔记)

    第三篇 功能实现(2) ●Activity的四种启动模式 Activity的启动模式有四种,分别是standard.singleTop.singleTask和singleInstance. 在Andr ...

随机推荐

  1. 有关DOM的小总结

    一直以为DOM(文档对象模型)是JS中最简单的一部分.不可否认,它确实很简单,因为DOM的思维模式有点固定,只需要简单地记住一些固定的方法,所以DOM可以说是所有js(这里指的是客户端的js)入门的起 ...

  2. HDOJ 2010 水仙花数

    Problem Description 春天是鲜花的季节,水仙花就是其中最迷人的代表,数学上有个水仙花数,他是这样定义的: "水仙花数"是指一个三位数,它的各位数字的立方和等于其本 ...

  3. 使用AppDelegate单例,解决子视图无法给父视图发送消息的问题

    关于单例模式,我会在实验过后再开一个博客重点讲单例的使用,这里只是介绍我在PhotoForBingyan的照片滤镜的项目中使用AppDelegate单例的情况. 碰到的问题: 由于这个项目是个多视图的 ...

  4. [经典] Best Time to Buy and Sell Stock

    这一系列求最优值的问题变种挺多 1. Say you have an array for which the ith element is the price of a given stock on ...

  5. cygwin with openssh

    新建系统变量 CYGWIN=ntsec path添加 ;c:\cygwin\bin 之后参考http://blog.csdn.net/benkaoya/article/details/8884677 ...

  6. FIREDAC TFDCONNECTION连接MYSQL数据库

    FIREDAC TFDCONNECTION连接MYSQL数据库 procedure TfrmDB.ConnectDB;begin FDMoniFlatFileClientLink1.FileName ...

  7. 使用Codis搭建redis集群服务

    转(http://www.jianshu.com/p/f8e968e57863) 一. 应用场景 redis 作为数据结构存储引擎,有着很多优点 高性能单机引擎可以达到5-10W qps 数据结构全面 ...

  8. 【Jsoup爬取网页内容】

    思路:根据给定URL分析其源码,得到所需的网页内容的位置,制定规则采集或下载之 采集的图片和文字示例: tags: tag:brazil tag:dog tag:pet tag:pointyfaced ...

  9. 【设计模式 - 15】之解释器模式(Interpreter)

    1      模式简介 解释器模式允许我们自定义一种语言,并定义一个这种语言的解释器,这个解释器用来解释语言中的句子.由于这种模式主要用于编译器的编写,因此在日常应用中不是很常用. 如果一种特定类型的 ...

  10. PMD使用手册

    文中测试例子均采用JHotDraw7源码,官网关于 JHotDraw的检测结果:http://pmd.sourceforge.net/reports/jhotdraw_JHotDraw.html 下载 ...