Nginx + Apache 的优化例子一则。

657 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
657
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
7
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Nginx + Apache 的优化例子一则。

  1. 1. Nginx + Apache 的优化例子一则。 范堡 发表于 2009-07-09 15:02 0 回/57 阅 ,对应项目:Apache HTTP Server 文件的含义(值得收藏) • Perl 动态网页 CGI 入门 1- HelloWorld ... • Cherokee 很强、很努力! 现在惯常使用的 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 就只需要专心动态应用得了。 大家知道怎么设了吧?
  2. 2. 查看 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

×