Nginx + Apache 的优化例子一则
来源:互联网 发布:python url下载文件 编辑:程序博客网 时间:2024/06/04 19:56
现在惯常使用的 Http 服务器配搭是 nginx + apache ,前者负责静态文件的读取,后者负责动态页面的处理。
以往只有 Apache 单独运行的时候,优化往往是一律的,可现在有了 Nginx 的加入,再稍微调整原来 apache 配置的细则,能更加发挥出这2个配搭的性能。
首先是 Apache 参数 KeepAlive
2.x 版本的 Apache 配置该参数需要先启用以下外联配置文件
在httpd.conf 中找到
# Various default settings
Include conf/extra/httpd-default.conf
把第二行前边的“#”去掉。
然后 KeepAlive 的参数就在以上路径的配置文件中。
下边是关于该参数的说明:
KeepAlive 是否允许持续连接
MaxKeepAliveRequests 允许的持续连接的最大数
KeepAliveTimeout 持续连接在没有请求多少秒后切断
前三个KeepAlive相关的指令用来设置持续连接。通常都是每个HTTP请求对应一个TCP连接,但对于一个包含许多图片的网页来说,客户端会在瞬间发出多个HTTP请求,此时多次建立TCP连接会大大降低响应速度。此时通过持续连接,可以允许用户在一个TCP连接中发出多个HTTP请求,减少TCP连接建立次数,提高响应速度。
这种情况下,应当通过access_log统计出连续HTTP请求出现的次数、间隔时间、访问量,以确定 MaxKeepAliveRequests 和 KeepAliveTimeout 的值。 KeepAliveTimeout 太小发挥不了持续连接的作用;太大了,持续连接迟迟不断,浪费TCP连接数不说,更糟糕的是系统中的 httpd 进程数目会因此不断增加,使得系统负载升高,甚至会导致服务器失去响应。
但是在处理动态网页请求时,由于用户很少会瞬间请求多个动态网页(一般都是打开页面之后阅读好半天才点下一页),此时打开KeepAlive无异于浪费TCP连接数。
结论就是,放动态网页的就 KeepAlive Off 以提高吞吐量,放静态内容如图片、js代码等就 KeepAlive On 以减少TCP连接建立次数。
但一个Apache只能有一种 KeepAlive 设置,怎么办?很简单,现在不就有 Nginx 了吗? 由它负责所有静态文件的处理,后端的Apache就只需要专心动态应用得了。
大家知道怎么设了吧?
查看 KeepAlive 是否有效,可以通过 curl -I 获取HTTP报头查看。
如下边2个不同的结果:
HTTP/1.1 200 OK
Date: Thu, 09 Jul 2009 06:58:13 GMT
Server: Apache/2.2.11 (Unix) PHP/5.2.6
Last-Modified: Fri, 03 Jul 2009 10:40:03 GMT
ETag: "163e8b2-d87-46dcac765c6c0"
Accept-Ranges: bytes
Content-Length: 3463
Connection: close 连接断开, KeepAlive 为 off
Content-Type: text/html
#################################
HTTP/1.1 200 OK
Server: nginx/0.6.35
Date: Thu, 09 Jul 2009 06:59:49 GMT
Content-Type: text/html
Content-Length: 1034
Last-Modified: Thu, 28 Aug 2008 17:07:40 GMT
Connection: keep-alive 持续连接, KeepAlive 为 on
Accept-Ranges: bytes
- Nginx + Apache 的优化例子一则
- 一则sql优化的例子
- 一则XML Schema的例子
- 一则PHP性能优化的技巧
- 一则对or条件的优化处理
- 一则分页查询的简单优化
- 关于java.util.NoSuchElementException错误的一则例子
- 有一则关于深拷贝和浅拷贝的例子。
- 关于java.util.NoSuchElementException错误的一则例子
- in_array()函数松散比较-引发的漏洞 例子一则
- JAVA对Excel的操作小例子一则
- SQL优化一则
- 数据库hang优化一则
- SQL优化案例一则
- Apache的Mod_rewrite 例子
- Apache/Nginx的虚拟主机
- Oracle SQL 'or' 的优化,最近的案例一则。
- SQL优化一则:灵活运用字段的选择性
- 数据统计存储过程规范(sql server)
- POJ2817——WordStack
- Project Euler - 13
- JAVA NIO之浅谈内存映射文件原理与DirectMemory
- 给MessageBean注入参数值,为Bean注入集合参数值。
- Nginx + Apache 的优化例子一则
- UiAutomator初识-在android上进行UiAutomator 测试基本步骤
- C++命名规范
- oracle 用HINT方式强制索引
- Eclipse for Linux “Launch Failed. Binary Not Found.”错误
- tomcat启动异常!
- Pycharm——代码跳转,处理转义字符
- 正则表达式常用匹配
- Codeforces Round #279 (Div. 2) C. Hacking Cypher