第三篇、调优之路 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
</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
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
DOSPageCount
DOSSiteCount
DOSPageInterval
DOSSiteInterval
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 ,放开对其配置
Include conf/extra/httpd-default.conf
在该文件中存在了对apache的默认配置参数
#
# Timeout: The number of seconds before receives and sends time out.
#
Timeout #
# 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 to allow an unlimited amount.
# We recommend you leave this number high, for maximum performance.
#
MaxKeepAliveRequests #
# KeepAliveTimeout: Number of seconds to wait for the next request from the
# same client on the same connection.
#
KeepAliveTimeout
MaxKeepAliveRequests 不要设置为0 (0为不限制),容易导致内存异常 .服务器性能较高可适当调整,建议保持默认 注释AccessFileName
#AccessFileName .htaccess
ServerSignature 设置为off 可防止服务器广播敏感信息 默认为on HostnameLookups 设置为on 可减少DNS查询次数 .
2.7 监听端口
默认情况下 apache 监听为80 端口,在实际中最好是指定监听具体的应用对应的 ip地址:80 即:
Listen xxx.xxx.xxx(具体的ip) :
因为服务器可能拥有多个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文件中所有的注释信息全部删掉 ,保持一个“纯洁”的配置. 嘿嘿...
此篇到此结束!
备注:性能优化要通过实际操作来校验的,不能想当然... 那啥来着 实践是检验真理的唯一标准...
第三篇、调优之路 Apache调优的更多相关文章
- PHP 性能分析第三篇: 性能调优实战
注意:本文是我们的 PHP 性能分析系列的第三篇,点此阅读 PHP 性能分析第一篇: XHProf & XHGui 介绍 ,或 PHP 性能分析第二篇: 深入研究 XHGui. 在本系列的 ...
- Apache调优(二)
Apache调优(一) (1).Apache运行模式说明 Apache目前一共有三种稳定的MPM(Multi-Processing Module,多进程处理模块)模式:Prefork(进程模式).Wo ...
- LAMP之Apache调优
一.环境的搭建 实验环境: 操作系统:Centos 7.4 [root@xuegod70 ~]# ls apr-1.6.3.tar.gz apr-util-1.6.1.tar.bz2 httpd-2. ...
- 三篇文章带你极速入门php(三)之php原生实现登陆注册
看下成果 ps:纯天然h5,绝不添加任何添加剂(css)以及化学成分(js)(<( ̄ ﹌  ̄)我就是喜欢纯天然,不接受任何反驳) 关于本文 用原生的php和html做了一个登陆注册,大概是可以窥 ...
- TDSQL|三篇论文入选国际顶会SIGMOD,厉害了腾讯云数据库
好消息!6月13日,腾讯云数据库三篇论文再次入选数据库行业顶会SIGMOD,被SIGMOD 2022 Research Full Paper(研究类长文)收录. 本次被收录的研究成果中,新型数据结构设 ...
- 一年三篇IF大于7的牛人告诉你怎么写SCI
一年三篇IF大于7的牛人告诉你怎么写SCI 1 研究生必备四本 俗话说好记性不如烂笔头,所以一定要首先养成做笔记的好习惯!作为研究生下面这几个本子是必不可少的: 1.实验记录本(包括试验准备本),这当 ...
- Android群英传帝落篇——程序人生,路漫漫其修远兮,吾将上下而求索!
Android群英传帝落篇--程序人生,路漫漫其修远兮,吾将上下而求索! 当写这篇博客的时候,自2016-02-22到现在5.2号,一晃眼,也㓟两个多月就过去了,我才将这本书看完,虽然写笔记花了很大的 ...
- OCM_第十四天课程:Section6 —》数据库性能调优_各类索引 /调优工具使用/SQL 优化建议
注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...
- 第三篇 功能实现(2) (Android学习笔记)
第三篇 功能实现(2) ●Activity的四种启动模式 Activity的启动模式有四种,分别是standard.singleTop.singleTask和singleInstance. 在Andr ...
随机推荐
- 2015第44周六tomcat集群了解
对于WEB应用集群的技术实现而言,最大的难点就是如何能在集群中的多个节点之间保持数据的一致性,会话(Session)信息是这些数据中最重要的一块.要实现这一点,大体上有两种方式,一种是把所有Sessi ...
- 最大流算法---Edmond-Karp
这个算法是基于FF方法,就是通过不断求残余网络的增广路来增广流量,直到找不到增广路为止.注意:每次找到增广路以后都要更新原网络.EK算法通过BFS寻找源S到汇T的一条最短路径,因此时间复杂度是O(VE ...
- 4种字符串匹配算法:KMP(下)
回顾:4种字符串匹配算法:BS朴素 Rabin-karp(上) 4种字符串匹配算法:有限自动机(中) 1.图解 KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R ...
- debian添加sudo
debian安装好默认没有sudo,都要su到root,感觉很容易手抖打错命令. 于是通过 apt-get install sudo安装sudo 然后就是添加有权限的用户到 /etc/sudoers ...
- hdu 4465 Candy(二次项概率)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4465 参考博客:http://www.cnblogs.com/goagain/archive/2012 ...
- Ubuntu 虚拟机环境安装配置指南
1. 安装Ubuntu到虚拟机. 到 Ubuntu 上下载桌面版iso文件,加载到虚拟机,开始安装,傻瓜式操作不用多说.2. 调整屏幕分辨率. 虚拟机软件我是用的virtual box,在工具栏上设备 ...
- BufferedInputStream详解
BufferedInputStream是一个带有缓冲区域的InputStream,它的继承体系如下: InputStream |__FilterInputStream |__Bu ...
- 详解 Spring 3.0 基于 Annotation 的依赖注入实现--转载
使用 @Repository.@Service.@Controller 和 @Component 将类标识为 Bean Spring 自 2.0 版本开始,陆续引入了一些注解用于简化 Spring 的 ...
- MyEclipse8.6安装svn(非link方式)
此方法经试验可行,暂时可以作为最佳解决方案. 本文所使用的MyEclipse版本为:8.6.1 svn的eclipse插件版本为:1.6.17,下载地址:http://subclipse.tigris ...
- 11.3 morning
noip模拟题day1 总览(Overview) 题目名称 取模 等比数列 回文串 程序名 mod sequence palindromes 输入文件名 mod.in sequence.in pa ...