高性能web服务器nginx及相关新技术的应用实践

上传人:正** 文档编号:53680611 上传时间:2018-09-04 格式:PPT 页数:53 大小:2.25MB
返回 下载 相关 举报
高性能web服务器nginx及相关新技术的应用实践_第1页
第1页 / 共53页
高性能web服务器nginx及相关新技术的应用实践_第2页
第2页 / 共53页
高性能web服务器nginx及相关新技术的应用实践_第3页
第3页 / 共53页
高性能web服务器nginx及相关新技术的应用实践_第4页
第4页 / 共53页
高性能web服务器nginx及相关新技术的应用实践_第5页
第5页 / 共53页
点击查看更多>>
资源描述

《高性能web服务器nginx及相关新技术的应用实践》由会员分享,可在线阅读,更多相关《高性能web服务器nginx及相关新技术的应用实践(53页珍藏版)》请在金锄头文库上搜索。

1、高性能Web服务器Nginx 及相关新技术的应用实践,北京金山软件 逍遥网 张宴 2009.10,什么是Nginx?,Nginx (“engine x”) 是俄罗斯人Igor Sysoev(塞索耶夫)编写的一款高性能的 HTTP 和反向代理服务器。Nginx 已经在俄罗斯最大的门户网站 Rambler Media(www.rambler.ru)上运行了4年时间,同时俄罗斯超过20%的虚拟主机平台采用Nginx作为反向代理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、YUPOO相册、豆瓣、迅雷看看等多家网站、频道使用 Nginx 服务器

2、。,Nginx的优点,1、高并发连接:官方测试能够支撑5万并发连接,在实际生产环境中跑到23万并发连接数。 2、内存消耗少:在3万并发连接下,开启的10个Nginx 进程才消耗150M内存(15M*10=150M)。 3、配置文件非常简单:风格跟程序一样通俗易懂。 4、成本低廉:Nginx为开源软件,可以免费使用。而购买F5 BIG-IP、NetScaler等硬件负载均衡交换机则需要十多万至几十万人民币。,Nginx的优点,5、支持Rewrite重写规则:能够根据域名、URL的不同,将 HTTP 请求分到不同的后端服务器群组。 6、内置的健康检查功能:如果 Nginx Proxy 后端的某台

3、Web 服务器宕机了,不会影响前端访问。 7、节省带宽:支持 GZIP 压缩,可以添加浏览器本地缓存的 Header 头。 8、稳定性高:用于反向代理,宕机的概率微乎其微。,单台Nginx支撑了高达2.8万的活动并发连接数,2009-09-03 14:30,金山游戏剑侠情缘网络版3临时维护1小时,大量玩家上官网,论坛、评论、客服等动态应用Nginx服务器集群,每台服务器的Nginx活动连接数达到2.8万,这是本人遇到的Nginx生产环境最高并发值。,Nginx的主要应用类别,1、使用 Nginx 结合FastCGI运行 PHP、JSP 、Perl等程序2、使用 Nginx 作反向代理、负载均衡

4、、规则过滤3、使用 Nginx 运行静态HTML页、图片4、Nginx与其他新技术的结合应用,Nginx在金山逍遥网中的应用案例,金山逍遥网()是金山游戏官方网站,为金山软件旗下的各款游戏提供新闻资讯、客户服务、在线充值、视听互动、在线活动、博客、相册、论坛、玩家社区等内容建设和在线服务支持。,金山逍遥网 Nginx七层负载均衡的应用,Nginx承担每个机房Web负载均衡服务,简单的Nginx负载均衡配置, upstream bbs_server_pool server 192.168.1.15:80 weight=1 max_fails=2 fail_timeout=30s;server 1

5、92.168.1.16:80 weight=1 max_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负载均衡配置, serverlisten 80;server_name *;location /proxy_pass http:/b

6、bs_server_pool;proxy_set_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服务

7、器上的程序需要获取用户IP,请从该Header头获取。,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 61.1.1.2 dev eth0:ha1 /sbin/arpin

8、g -I eth0 -c 3 -s 61.1.1.2 61.1.1.1在服务器的外网网卡eth0上,绑定了一个虚拟IP 61.1.1.2,绑定完成后发送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 /sbin/arping -I eth0 -c 3 -s 61.1.1.3 61.1.1.1在服务器的外网网卡eth0上,绑定了一个虚拟IP 61.1.1.3

9、,绑定完成后发送arping包给网关。,新的Nginx双机互备(发生故障时),自动接管公网虚拟IP,实现故障转移,服务器去除IP别名,/sbin/ifconfig eth0:ha1 61.1.1.2 broadcast 61.1.1.255 netmask 255.255.255.0 down通过两台服务器之间的互相检测机制,当服务器上的检测程序发现自身的Nginx无法访问时,停止绑定虚拟IP 61.1.1.2,服务器接管原服务器的虚拟IP,/sbin/ifconfig eth0:ha1 61.1.1.2 broadcast 61.1.1.255 netmask 255.255.255.0 u

10、p /sbin/route add -host 61.1.1.2 dev eth0:ha1 /sbin/arping -I eth0 -c 3 -s 61.1.1.2 61.1.1.1给网关发送Arping包,保证了网关上IP、MAC地址对应关系能够马上更改,能够做到强行接管虚拟IP。,Nginx负载均衡URL分发,硬件、软件 七层负载均衡对比: NetScaler 与 Nginx,硬件、软件 七层负载均衡对比: NetScaler 与 Nginx,根据不同的URL转发到不同服务器,serverlisten 80;server_name ;location /admincp.phpproxy_

11、pass http:/192.168.1.11;proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;location /proxy_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监听某一目录,如

12、果目录内文件发生增、删、改,利用Rsync协议自动同步到多台服务器。http:/ lsyncd /data0/htdocs/ 192.168.5.1:hu_data/ 192.168.5.2:hu_data/ 192.168.5.3:hu_data/ 192.168.5.4:hu_data/,大量文件的多服务器自动同步,使用Linux 2.6内核的inotify监控Linux文件系统事件。 修改可监控的最大目录数量echo 50000000 /proc/sys/fs/inotify/max_user_watches 金山逍遥网开发的sersync文件自动同步程序,适合大量文件的自动同步,并可以

13、在文件同步完成后,自动调用CDN缓存刷新接口,刷新发生修改、删除的文件的访问URL。 用于:金山游戏官网的CMS发布系统。,Nginx的Web缓存服务,Nginx的缓存功能,Nginx从0.7.48版本开始,支持了类似Squid的缓存功能; 缓存把URL及相关组合当作Key,用md5编码哈希后保存; Nginx的Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面; 采用MMAP实现,设置的缓存区大小不能超过物理内存+SWAP的值。,反向代理中的Nginx.conf缓存配置, #设置Web缓存区名称为cache_one,缓存空间大小为2

14、000MB,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_temp_path;upstream my_server_pool server 192.168.1.2:80 weight=1 max_fails=2 fail_timeout=30s

15、;server 192.168.1.3:80 weight=1 max_fails=2 fail_timeout=30s; ,反向代理中的Nginx.conf缓存配置,serverlisten 80;server_name ;location /proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http:/my_server_pool;location .*.(gif|jpg|jpeg|png|bmp|swf|js|css)$#对图片、JS、CSS进行缓存,使用Web缓存区c

16、ache_oneproxy_cache cache_one;,反向代理中的Nginx.conf缓存配置,#对不同HTTP状态码缓存设置不同的缓存时间proxy_cache_valid 200 10m;proxy_cache_valid 304 3m;proxy_cache_valid 301 302 1h;proxy_cache_valid any 1m;#设置Web缓存的Key值,Nginx根据Key值md5哈希存储缓存,这里根据“域名、URI、客户端请求Header头中的If-Modified-Since信息”组合成Key。proxy_cache_key $host$request_uri$http_if_modified_since;#反向代理,访问后端内容源服务器proxy_set_header Host $host;proxy_set_header X-Forwarded-For $remote_addr;proxy_pass http:/my_server_pool;access_log off; ,

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号