我在设计系统架构时,进行了大胆的尝试,只用6台Web服务器,达到了可承受4000万PV(页面访问量)的性能:
抛弃了 Apache,因为它能承受的并发连接相对较低;
抛弃了 Squid,因为它在内存利用、访问速度、并发连接、清除缓存等方面不如 Varnish;
抛弃了 PHP4,因为 PHP5 处理面向对象代码的速度要比 PHP4 快,另外,PHP4 已经不再继续开发;
抛弃了 F5 BIG-IP 负载均衡交换机,F5 虽然是个好东西,但由于价格不菲,多个部门多个产品都运行在其之上,流量大、负载高,从而导致性能大打折扣;
利用 Varnish cache 减少了90%的数据库查询,解决了MySQL数据库瓶颈;
利用 Varnish cache 的内存缓存命中加快了网页的访问速度;
利用 Nginx + PHP5(FastCGI) 的胜过Apache 10倍的高并发性能,以最少的服务器数量解决了PHP动态程序访问问题;
利用 Memcached 处理实时数据读写;
利用 HAProxy 做接口服务器健康检查;
经过压力测试,每台Web服务器能够处理3万并发连接数,承受4千万PV完全没问题。
保证4千万PV的并发连接数:(40000000PV / 86400秒 * 10个派生连接数 * 5秒内响应 * 5倍峰值) / 6台Web服务器 = 19290连接数
实验证明:
举 个简单的例子,服务器192.168.0.2上运行Nginx+PHP,192.168.0.3上运行Apache+PHP,你在 192.168.0.4上安装压力测试工具webbench,以30万并发连接分别请求Nginx和Apache服务器上的一个PHP文件60秒钟。在这 期间,你用你的浏览器访问Apache服务器上的PHP文件,会发现要么是“该页无法显示”、要么是等待好几秒钟才能打开,而Nginx服务器的PHP文 件,依然没有丝毫影响,访问速度仍然飞快。
webbench -c 300000 -t 60 http://192.168.0.2/index.php
webbench -c 300000 -t 60 http://192.168.0.3/index.php
以下为 Nginx 0.5.33 + PHP 5.2.5 (FastCGI) 服务器在3万并发连接下,开启的10个Nginx进程和250个php-cgi进程时的系统负载情况:
-------------------------------------------------------------------------
安装步骤:
(系统要求:Linux 2.6+ 内核,本文中的Linux操作系统为AS4.3)
一、获取相关开源程序:
1、下载程序源码包到当前目录:
本文中提到的所有开源软件为截止到2007年9月21日的最新稳定版。我将它们打了两个压缩包。
第一个压缩包:nginx_php_mysql_1.0_1of2.zip:
下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2289607
第二个压缩包:nginx_php_mysql_1.0_2of2.zip:
下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=2289595
2、解压缩:
unzip nginx_php_mysql_1.0_1of2.zip
unzip nginx_php_mysql_1.0_2of2.zip
-------------------------------------------------------------------------
一、) 安装Nginx
1.) 安装
Nginx ("engine x") 是一个高性能的 HTTP 和反向代理服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,它已经在该站点运行超过两年半了。Igor 将源代码以类BSD许可证的形式发布。尽管还是测试版,但是,Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。欢迎访问 Nginx 的中文维基,http://wiki.codemongers.com/NginxChs.
2.)安装Nginx所需的pcre库:
[root@localhost]#tar zxvf pcre-7.2.tar.gz
[root@localhost]#cd pcre-7.2/
[root@localhost]#./configure
[root@localhost]#make && make install
[root@localhost]#cd ../
3.)Nginx的编译参数如下:
[root@localhost]#./configure --user=www --group=www --prefix=/usr/local/nginx --with-openssl=/usr/include/openssl --with-pcre=/usr/local/lib --with-http_stub_status_module --without-http_memcached_module --without-http_fastcgi_module --without-http_rewrite_module --without-http_map_module --without-http_geo_module --without-http_autoindex_module
在这里,需要说明一下,由于Nginx的配置文件中我想用到正则,所以 需要 pcre 模块的支持。上面安装步骤里我已经安装了 pcre 及 pcre-devel 的rpm包,但是 Ngxin 并不能正确找到 .h/.so/.a/.la 文件,因此我稍微变通了一下:
[root@localhost]#mkdir /usr/include/pcre/.libs/
[root@localhost]#cp /usr/local/lib/libpcre.a /usr/include/pcre/.libs/libpcre.a
[root@localhost]#cp /usr/local/lib/libpcre.a /usr/include/pcre/.libs/libpcre.la
[root@localhost]#cp /usr/local/lib/libpcre.a /usr/include/pcre/libpcre.a
[root@localhost]#cp /usr/local/lib/libpcre.a /usr/include/pcre/libpcre.la
然后,修改 objs/Makefile 大概在908行的位置上,注释掉以下内容:
./configure --disable-shared
接下来,就可以正常执行 make 及 make install 了。
Reference:
http://www.s135.com/post/313/
相关推荐
nginx和php和varnish配置
首先,从测试环境来看,本次测试所使用的Squid、Ngx_cache(也就是Varnish)、Nginx_cache均运行在具有单硬盘资源的服务器上,并为缓存分配了180G的存储空间。这意味着测试结果更侧重于考察三者在单盘存储条件下的...
# nginx – this script starts and stops the nginx daemon # # chkconfig: –85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ # proxy and IMAP/POP3 proxy server # # processname: nginx #...
Nginx和Varnish是当前流行的高性能Web服务器和反向代理服务器,经常用于缓存和负载均衡。针对这两个技术的优化补充知识点,主要围绕提升服务器性能、处理静态内容的能力以及如何正确配置以应对后端服务变更。 首先...
如何用DNS+GeoIP+Nginx+Varnish做世界级的CDN.
Varnish的性能尤其在处理大量静态内容缓存方面比Nginx和Apache更胜一筹。 5. 如何安装和配置Varnish 安装Varnish通常比较直接,可以通过包管理器如apt或yum安装。安装之后,需要配置VCL文件,通过这个配置文件定义...
在varnish、squid、apache和nginx这四个选项中,每种都有其独特的特性和适用场景。 首先,Varnish和Squid是专门设计为缓存服务器的。Varnish以其高效的“Visual Page Cache”技术著称,它优化了内存管理,避免了...
7. Varnish和后端服务器交互:Varnish可以与各种后端服务器(如Apache、Nginx)协同工作,通过智能缓存减轻后端压力,同时处理大量并发请求。 8. Varnish的缓存更新和失效策略:了解如何设置缓存过期时间、如何根据...
高并发请求下,负载会增加,但通过引入Varnish缓存,可以有效减轻nginx的压力。 - **单网卡流量**:网卡流量显示了服务器网卡的数据传输量。当并发数增加时,流量也会相应增加。 - **CPU使用率**:CPU使用率的高低...
Getting Started with Varnish Cache: Accelerate Your Web Applications by Thijs Feryn English | 13 Mar. 2017 | ASIN: B06XP3D6Z2 | 253 ...Use logging and debugging tools to examine the behavior of Varnish
本书的最后一部分是关于Nginx使用缓存技术的方法,共列举了Nginx使用的五大缓存,特别是广泛使用的代理缓存、Memcached和Varnish,另外对于Memcached服务器的使用贯穿了整套书。在本书中着重讲述了它的协议、原理...
Linux Varnish 配置详解 Varnish 是一款高性能的开源HTTP缓存和代理服务器,主要用于提升网站的响应速度和处理能力。它通过缓存静态内容和动态内容的副本,减少对后端服务器的请求,从而提高了整体的Web性能。在...
同时,Nginx还可以配合其他工具如Varnish,实现更高效的缓存策略。 对于HTTPS安全连接,Nginx支持SSL/TLS协议,可以配置证书和密钥进行加密通信,保障数据传输的安全性。此外,Nginx还提供了一系列的HTTP安全头设置...
第1部分 Nginx服务器 第1章 Nginx的功能 第2章 Nginx的模块管理和进程管理 第3章 Nginx如何处理一个请求 第4章 服务器名字 第5章 协助用户操作Nginx的工具 第6章 5XX错误处理 ...第57章 缓存技术――Varnish
Varnish和Lighttpd是两个非常重要的开源Web服务器软件,它们在Web性能优化和负载均衡方面发挥着关键作用。Varnish作为一个高性能的HTTP缓存代理,常用于减轻后端服务器的压力,提高网站响应速度;而Lighttpd则是一款...
5. 兼容性和稳定性:与各种后端服务器(如Apache、Nginx等)有更好的兼容性,确保在各种环境中都能稳定运行。 在实际部署中,Varnish 6.2.0通常被用作CDN(内容分发网络)的一部分,或者直接在数据中心作为前端缓存...
5. **动静分离**:通过缓存(如Nginx的cache,或varnish、squid)将动态请求转化为静态资源,减轻服务器压力。 6. **购买DDoS防火墙**或使用CDN服务,分散攻击流量。 **问题四:设置禁止访问项** 1. **禁止访问特定...
《决战Nginx系统卷:高性能Web服务器详解与运维》 的最后一部分是关于Nginx使用缓存技术的方法,共列举了Nginx使用的五大缓存,特别是广泛使用的代理缓存、Memcached和Varnish,另外对于Memcached服务器的使用贯穿...