高性能Web服务器Nginx及相关新技术的应用实践.ppt
《高性能Web服务器Nginx及相关新技术的应用实践.ppt》由会员分享,可在线阅读,更多相关《高性能Web服务器Nginx及相关新技术的应用实践.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、高性能高性能Web服务器服务器Nginx及相关新技术的应用实践及相关新技术的应用实践北京金山软件北京金山软件 逍遥网逍遥网张宴张宴2009.102009.10什么是什么是Nginx?Nginx(“engine x”)Nginx(“engine x”)是俄罗斯人是俄罗斯人Igor SysoevIgor Sysoev(塞索耶夫塞索耶夫)编写的一款高性能的编写的一款高性能的 HTTP HTTP 和反向代和反向代理服务器。理服务器。Nginx Nginx 已经在俄罗斯最大的门户网站已经在俄罗斯最大的门户网站 Rambler MediaRambler Media()上运行了()上运行了4 4年时间,同时
2、俄罗年时间,同时俄罗斯超过斯超过20%20%的虚拟主机平台采用的虚拟主机平台采用NginxNginx作为反向代作为反向代理服务器。理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行在国内,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、词霸、校内网、YUPOOYUPOO相册、豆瓣、迅雷看看等多相册、豆瓣、迅雷看看等多家网站、频道使用家网站、频道使用 Nginx Nginx 服务器。服务器。Nginx的优点的优点1 1、高并发连接:、高并发连接:官方测试能够支撑官方测试能够支撑5 5万并发连万并发连接,在实际生
3、产环境中跑到接,在实际生产环境中跑到2 23 3万并发连接数。万并发连接数。2 2、内存消耗少:、内存消耗少:在在3 3万并发连接下,开启的万并发连接下,开启的1010个个Nginx Nginx 进程才消耗进程才消耗150M150M内存内存(15M*10=150M15M*10=150M)。)。3 3、配置文件非常简单:、配置文件非常简单:风格跟程序一样通俗风格跟程序一样通俗易懂。易懂。4 4、成本低廉:、成本低廉:NginxNginx为开源软件,可以免费使为开源软件,可以免费使用。而购买用。而购买F5 BIG-IPF5 BIG-IP、NetScalerNetScaler等硬件负载等硬件负载均衡
4、交换机则需要十多万至几十万人民币。均衡交换机则需要十多万至几十万人民币。Nginx的优点的优点5 5、支持、支持RewriteRewrite重写规则:重写规则:能够根据域名、能够根据域名、URLURL的不同,将的不同,将 HTTP HTTP 请求分到不同的后端请求分到不同的后端服务器群组。服务器群组。6 6、内置的健康检查功能:、内置的健康检查功能:如果如果 Nginx Nginx Proxy Proxy 后端的某台后端的某台 Web Web 服务器宕机了,不服务器宕机了,不会影响前端访问。会影响前端访问。7 7、节省带宽:、节省带宽:支持支持 GZIP GZIP 压缩,可以添加压缩,可以添加
5、浏览器本地缓存的浏览器本地缓存的 Header Header 头。头。8 8、稳定性高:、稳定性高:用于反向代理,宕机的概率用于反向代理,宕机的概率微乎其微。微乎其微。单台单台Nginx支撑了高达支撑了高达2.8万的活动并发连接数万的活动并发连接数2009-09-032009-09-03 14:3014:30,金山游戏,金山游戏剑侠情缘网络版剑侠情缘网络版3 3临时维临时维护护1 1小时,大量玩家上官网,论坛、评论、客服等动态应用小时,大量玩家上官网,论坛、评论、客服等动态应用NginxNginx服务器集群,每台服务器的服务器集群,每台服务器的NginxNginx活动连接数达到活动连接数达到2
6、.82.8万,这是本人遇到的万,这是本人遇到的NginxNginx生产环境最高并发值。生产环境最高并发值。Nginx的主要应用类别的主要应用类别1 1、使用、使用 Nginx Nginx 结合结合FastCGIFastCGI运行运行 PHPPHP、JSP JSP、PerlPerl等程序等程序2 2、使用、使用 Nginx Nginx 作反向代理、负载均衡、作反向代理、负载均衡、规则过滤规则过滤3 3、使用、使用 Nginx Nginx 运行静态运行静态HTMLHTML页、图片页、图片4 4、NginxNginx与其他新技术的结合应用与其他新技术的结合应用Nginx在金山逍遥网中的应用案例在金山
7、逍遥网中的应用案例金山逍遥网()是金山游戏官方网站,为金山软件旗下的各款游戏提供新闻资讯、客户服务、在线充值、视听互动、在线活动、博客、相册、论坛、玩家社区等内容建设和在线服务支持。金山逍遥网金山逍遥网Nginx七层负载均衡的应用七层负载均衡的应用Nginx承担每个机房承担每个机房Web负载均衡服务负载均衡服务简单的简单的Nginx负载均衡配置负载均衡配置 upstream bbs_server_pool server 192.168.1.15:80 weight=1 max_fails=2 fail_timeout=30s;server 192.168.1.16:80 weight=1 ma
8、x_fails=2 fail_timeout=30s;server 192.168.1.17:80 weight=1 max_fails=2 fail_timeout=30s;server 192.168.1.18:80 weight=1 max_fails=2 fail_timeout=30s;在nginx.conf配置文件中,用upstream指令定义一组反向代理/负载均衡后端服务器池。简单的简单的Nginx负载均衡配置负载均衡配置 server listen80;server_name *;location/proxy_pass http:/bbs_server_pool;proxy_s
9、et_header Host$host;proxy_set_header X-Forwarded-For$remote_addr;access_log off;简单的简单的Nginx负载均衡配置负载均衡配置proxy_pass http:/bbs_server_pool;用于指定反向代理的服务器池。proxy_set_header Host$host;当后端Web服务器上也配置有多个虚拟主机时,需要用该Header来区分反向代理哪个主机名。proxy_set_header X-Forwarded-For$remote_addr;如果后端Web服务器上的程序需要获取用户IP,请从该Header头
10、获取。Nginx负载均衡的双机热备负载均衡的双机热备通常情况下的负载均衡HA高可用优点:实现了双机热备、故障自动转移。优点:实现了双机热备、故障自动转移。缺点:备机服务器处于闲置状态,浪费了硬件资源。缺点:备机服务器处于闲置状态,浪费了硬件资源。逍遥网逍遥网Nginx负载均衡双机互备负载均衡双机互备正常情况下,两台Nginx负载均衡服务器全部处于活动状态,对外提供服务。服务器服务器绑定绑定IP别名别名/sbin/ifconfig eth0:ha1 61.1.1.2 broadcast 61.1.1.255 netmask 255.255.255.0 up/sbin/route add-host
11、 61.1.1.2 dev eth0:ha1在服务器的外网网卡eth0上,绑定了一个虚拟,绑定完成后发送arping包给网关。服务器服务器绑定绑定IP别名别名/sbin/ifconfig eth0:ha2 61.1.1.3 broadcast 61.1.1.255 netmask 255.255.255.0 up/sbin/route add-host 61.1.1.3 dev eth0:ha2在服务器的外网网卡eth0上,绑定了一个虚拟,绑定完成后发送arping包给网关。新的新的Nginx双机互备双机互备(发生故障时发生故障时)自动接管公网虚拟IP,实现故障转移服务器服务器去除去除IP别名
12、别名/sbin/ifconfig eth0:ha1 61.1.1.2 broadcast 61.1.1.255 netmask 255.255.255.0 down通过两台服务器之间的互相检测机制,当服务器上的检测程序发现自身的Nginx无法访问时,停止绑定虚拟服务器服务器接管原服务器接管原服务器的虚拟的虚拟IP/sbin/ifconfig eth0:ha1 61.1.1.2 broadcast 61.1.1.255 netmask 255.255.255.0 up/sbin/route add-host 61.1.1.2 dev eth0:ha1给网关发送Arping包,保证了网关上IP、M
13、AC地址对应关系能够马上更改,能够做到强行接管虚拟IP。Nginx负载均衡负载均衡URL分发分发硬件、软件七层负载均衡对比:NetScaler与Nginx硬件、软件七层负载均衡对比:NetScaler与Nginx根据不同的根据不同的URL转发到不同服务器转发到不同服务器server listen 80;server_name ;location /admincp.php proxy_pass http:/192.168.1.11;proxy_set_header Host$host;proxy_set_header X-Forwarded-For$remote_addr;location/pr
14、oxy_pass http:/php_server_pool;proxy_set_header Host$host;proxy_set_header X-Forwarded-For$remote_addr;Web相关文件的实时自动同步相关文件的实时自动同步少量文件的多服务器自动同步少量文件的多服务器自动同步使用Linux 2.6内核的inotify监控Linux文件系统事件。利用开源的lsync监听某一目录,如果目录内文件发生增、删、改,利用Rsync协议自动同步到多台服务器。lsyncd/data0/htdocs/ 2.6内核的inotify监控Linux文件系统事件。修改可监控的最大目录数
15、量 echo 50000000 /proc/sys/fs/inotify/max_user_watches金山逍遥网开发的sersync文件自动同步程序,适合大量文件的自动同步,并可以在文件同步完成后,自动调用CDN缓存刷新接口,刷新发生修改、删除的文件的访问URL。用于:金山游戏官网的CMS发布系统。Nginx的的Web缓存服务缓存服务Nginx的缓存功能的缓存功能Nginx从版本开始,支持了类似Squid的缓存功能;缓存把URL及相关组合当作Key,用md5编码哈希后保存;Nginx的Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存
16、页面;采用MMAP实现,设置的缓存区大小不能超过物理内存+SWAP的值。反向代理中的反向代理中的Nginx.conf缓存配置缓存配置#设置Web缓存区名称为cache_one,缓存空间大小为2000MB,1天清理一次缓存,单个文件超过5m不缓存。proxy_cache_path /data0/proxy_cache_path levels=1:2 keys_zone=cache_one:2000m inactive=1d max_size=5m;#注:proxy_temp_path和proxy_cache_path指定的路径必须在同一分区proxy_temp_path/data0/proxy_
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 性能 Web 服务器 Nginx 相关 新技术 应用 实践
限制150内