SlideShare une entreprise Scribd logo
1  sur  2
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 就只需要专心动态应用得了。

大家知道怎么设了吧?
查看 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

Contenu connexe

En vedette

使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡cachowu
 
Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...
Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...
Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...anabelavalentim
 
Linux Security Quick Reference Guide
Linux Security Quick Reference GuideLinux Security Quick Reference Guide
Linux Security Quick Reference Guidewensheng wei
 
Barcelona 2010 hidden_features
Barcelona 2010 hidden_featuresBarcelona 2010 hidden_features
Barcelona 2010 hidden_featuresAnis Berejeb
 
治疗10种社会化媒体疾病的药方——socialbeta
治疗10种社会化媒体疾病的药方——socialbeta治疗10种社会化媒体疾病的药方——socialbeta
治疗10种社会化媒体疾病的药方——socialbetaputing
 
Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Marco Mendes
 
使用搜索引擎发掘信息背后的情报
使用搜索引擎发掘信息背后的情报使用搜索引擎发掘信息背后的情报
使用搜索引擎发掘信息背后的情报Kevin cheng
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践锐 张
 
mysql的字符串函数
mysql的字符串函数mysql的字符串函数
mysql的字符串函数wensheng wei
 
09 赵昆
09 赵昆09 赵昆
09 赵昆锐 张
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />tutorialsruby
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconYiwei Ma
 
Ajax应用开发最佳实践
Ajax应用开发最佳实践Ajax应用开发最佳实践
Ajax应用开发最佳实践Fu Cheng
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qconYiwei Ma
 
服务器端性能优化 提升Qps、rt
服务器端性能优化 提升Qps、rt服务器端性能优化 提升Qps、rt
服务器端性能优化 提升Qps、rt锐 张
 

En vedette (18)

使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡使用Nginx轻松实现开源负载均衡
使用Nginx轻松实现开源负载均衡
 
Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...
Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...
Modelo de auto-avaliacao_das_bibliotecas_escolares_metodologias_de_operaciona...
 
Dvd轉Avi
Dvd轉AviDvd轉Avi
Dvd轉Avi
 
Linux Security Quick Reference Guide
Linux Security Quick Reference GuideLinux Security Quick Reference Guide
Linux Security Quick Reference Guide
 
Barcelona 2010 hidden_features
Barcelona 2010 hidden_featuresBarcelona 2010 hidden_features
Barcelona 2010 hidden_features
 
治疗10种社会化媒体疾病的药方——socialbeta
治疗10种社会化媒体疾病的药方——socialbeta治疗10种社会化媒体疾病的药方——socialbeta
治疗10种社会化媒体疾病的药方——socialbeta
 
Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009Por que Python? - Latinoware 2009
Por que Python? - Latinoware 2009
 
使用搜索引擎发掘信息背后的情报
使用搜索引擎发掘信息背后的情报使用搜索引擎发掘信息背后的情报
使用搜索引擎发掘信息背后的情报
 
基于My sql的分布式数据库实践
基于My sql的分布式数据库实践基于My sql的分布式数据库实践
基于My sql的分布式数据库实践
 
mysql的字符串函数
mysql的字符串函数mysql的字符串函数
mysql的字符串函数
 
09 赵昆
09 赵昆09 赵昆
09 赵昆
 
<img src="../i/r_14.png" />
<img src="../i/r_14.png" /><img src="../i/r_14.png" />
<img src="../i/r_14.png" />
 
Zhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qconZhongxing practice-suchunshan-qcon
Zhongxing practice-suchunshan-qcon
 
Ajax应用开发最佳实践
Ajax应用开发最佳实践Ajax应用开发最佳实践
Ajax应用开发最佳实践
 
Présentation
PrésentationPrésentation
Présentation
 
SAE adaptée
SAE adaptéeSAE adaptée
SAE adaptée
 
Devjam keynote-david-qcon
Devjam keynote-david-qconDevjam keynote-david-qcon
Devjam keynote-david-qcon
 
服务器端性能优化 提升Qps、rt
服务器端性能优化 提升Qps、rt服务器端性能优化 提升Qps、rt
服务器端性能优化 提升Qps、rt
 

Plus de wensheng wei

你会柔软地想起这个校园
你会柔软地想起这个校园你会柔软地想起这个校园
你会柔软地想起这个校园wensheng wei
 
几米语录(1)
几米语录(1)几米语录(1)
几米语录(1)wensheng wei
 
高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术wensheng wei
 
存储过程编写经验和优化措施
存储过程编写经验和优化措施存储过程编写经验和优化措施
存储过程编写经验和优化措施wensheng wei
 
CentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 ZendCentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 Zendwensheng wei
 
Happiness is a Journey
Happiness is a JourneyHappiness is a Journey
Happiness is a Journeywensheng wei
 
Java JNI 编程进阶
Java JNI 编程进阶     Java JNI 编程进阶
Java JNI 编程进阶 wensheng wei
 
Linux Shortcuts and Commands:
Linux Shortcuts and Commands:Linux Shortcuts and Commands:
Linux Shortcuts and Commands:wensheng wei
 
Java正则表达式详解
Java正则表达式详解Java正则表达式详解
Java正则表达式详解wensheng wei
 
Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法wensheng wei
 
数据库设计方法、规范与技巧
数据库设计方法、规范与技巧数据库设计方法、规范与技巧
数据库设计方法、规范与技巧wensheng wei
 
揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件wensheng wei
 
入门-Java运行环境变量的图文教程
入门-Java运行环境变量的图文教程入门-Java运行环境变量的图文教程
入门-Java运行环境变量的图文教程wensheng wei
 
LINUX Admin Quick Reference
LINUX Admin Quick ReferenceLINUX Admin Quick Reference
LINUX Admin Quick Referencewensheng wei
 
Cool Object Building With PHP
Cool Object Building With PHPCool Object Building With PHP
Cool Object Building With PHPwensheng wei
 
100 Essential Web Development Tools
100 Essential Web Development Tools100 Essential Web Development Tools
100 Essential Web Development Toolswensheng wei
 

Plus de wensheng wei (20)

你会柔软地想起这个校园
你会柔软地想起这个校园你会柔软地想起这个校园
你会柔软地想起这个校园
 
几米语录(1)
几米语录(1)几米语录(1)
几米语录(1)
 
我的简历
我的简历我的简历
我的简历
 
高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术高级PHP应用程序漏洞审核技术
高级PHP应用程序漏洞审核技术
 
存储过程编写经验和优化措施
存储过程编写经验和优化措施存储过程编写经验和优化措施
存储过程编写经验和优化措施
 
CentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 ZendCentOS5 apache2 mysql5 php5 Zend
CentOS5 apache2 mysql5 php5 Zend
 
Happiness is a Journey
Happiness is a JourneyHappiness is a Journey
Happiness is a Journey
 
Java JNI 编程进阶
Java JNI 编程进阶     Java JNI 编程进阶
Java JNI 编程进阶
 
Linux Shortcuts and Commands:
Linux Shortcuts and Commands:Linux Shortcuts and Commands:
Linux Shortcuts and Commands:
 
Java正则表达式详解
Java正则表达式详解Java正则表达式详解
Java正则表达式详解
 
issue35 zh-CN
issue35 zh-CNissue35 zh-CN
issue35 zh-CN
 
Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法Android模拟器SD Card映像文件使用方法
Android模拟器SD Card映像文件使用方法
 
Subversion FAQ
Subversion FAQSubversion FAQ
Subversion FAQ
 
数据库设计方法、规范与技巧
数据库设计方法、规范与技巧数据库设计方法、规范与技巧
数据库设计方法、规范与技巧
 
揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件揭秘全球最大网站Facebook背后的那些软件
揭秘全球最大网站Facebook背后的那些软件
 
入门-Java运行环境变量的图文教程
入门-Java运行环境变量的图文教程入门-Java运行环境变量的图文教程
入门-Java运行环境变量的图文教程
 
Java学习路径
Java学习路径Java学习路径
Java学习路径
 
LINUX Admin Quick Reference
LINUX Admin Quick ReferenceLINUX Admin Quick Reference
LINUX Admin Quick Reference
 
Cool Object Building With PHP
Cool Object Building With PHPCool Object Building With PHP
Cool Object Building With PHP
 
100 Essential Web Development Tools
100 Essential Web Development Tools100 Essential Web Development Tools
100 Essential Web Development Tools
 

Nginx + Apache 的优化例子一则。

  • 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. 查看 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