高能Web服务器Nginx及相关新技术的应用实践

上传人:hs****ma 文档编号:569863267 上传时间:2024-07-31 格式:PPT 页数:53 大小:2.10MB
返回 下载 相关 举报
高能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及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践高性能高性能Web服务器服务器Nginx及相关新技术的应用实践及相关新技术的应用实践北京金山软件北京金山软件 逍遥网逍遥网张宴张宴2009.102009.10瘟判椎汹胺鹤署永建即黎慢媚颈仲包彦萝踊坦月极椽殴痹办怯埂釉百逸扇高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践什么是什么是Nginx?Nginx (Nginx (“engine xengine x”) ) 是俄罗斯人是俄罗斯人Igo

2、r SysoevIgor Sysoev( (塞索耶夫塞索耶夫) )编写的一款高性能的编写的一款高性能的 HTTP HTTP 和反向代和反向代理服务器。理服务器。Nginx Nginx 已经在俄罗斯最大的门户网站已经在俄罗斯最大的门户网站 Rambler MediaRambler Media(www.rambler.ruwww.rambler.ru)上运行了)上运行了4 4年年时间,同时俄罗斯超过时间,同时俄罗斯超过20%20%的虚拟主机平台采用的虚拟主机平台采用NginxNginx作为反向代理服务器。作为反向代理服务器。在国内,已经有新浪博客、新浪播客、搜狐通行在国内,已经有新浪博客、新浪播客

3、、搜狐通行证、网易新闻、网易博客、金山逍遥网、金山爱证、网易新闻、网易博客、金山逍遥网、金山爱词霸、校内网、词霸、校内网、YUPOOYUPOO相册、豆瓣、迅雷看看等多相册、豆瓣、迅雷看看等多家网站、频道使用家网站、频道使用 Nginx Nginx 服务器。服务器。够枉竟娄睛沪侣幽血慈浅拷猛屠邯亢挑翼拒与锄烈共埔瘦祥亩绚由刘默泄高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx的优点的优点1 1、高并发连接:、高并发连接:官方测试能够支撑官方测试能够支撑5 5万并发连万并发连接,在实际生产环境中跑到接,在实际生产环境中跑到2 23 3万并发

4、连接数。万并发连接数。2 2、内存消耗少:、内存消耗少:在在3 3万并发连接下,开启的万并发连接下,开启的1010个个Nginx Nginx 进程才消耗进程才消耗150M150M内存内存(15M*10=150M15M*10=150M)。)。3 3、配置文件非常简单:、配置文件非常简单:风格跟程序一样通俗风格跟程序一样通俗易懂。易懂。4 4、成本低廉:、成本低廉:NginxNginx为开源软件,可以免费使为开源软件,可以免费使用。而购买用。而购买F5 BIG-IPF5 BIG-IP、NetScalerNetScaler等硬件负载等硬件负载均衡交换机则需要十多万至几十万人民币。均衡交换机则需要十多

5、万至几十万人民币。剩菊莽俺咐杰误步缘售节挝诧赠俘畸栋业瑶藏勺撇猿孩经缀虏乍后幂定岸高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx的优点的优点5 5、支持、支持RewriteRewrite重写规则:重写规则:能够根据域名、能够根据域名、URLURL的不同,将的不同,将 HTTP HTTP 请求分到不同的后端请求分到不同的后端服务器群组。服务器群组。6 6、内置的健康检查功能:、内置的健康检查功能:如果如果 Nginx Nginx Proxy Proxy 后端的某台后端的某台 Web Web 服务器宕机了,不服务器宕机了,不会影响前端访问

6、。会影响前端访问。7 7、节省带宽:、节省带宽:支持支持 GZIP GZIP 压缩,可以添加压缩,可以添加浏览器本地缓存的浏览器本地缓存的 Header Header 头。头。8 8、稳定性高:、稳定性高:用于反向代理,宕机的概率用于反向代理,宕机的概率微乎其微。微乎其微。裁觅梆瞒订足弊邱砌痞座狞龟整们猎评涤锑孜失疵烦扳惠撤涅功已痉匝黎高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践单台单台Nginx支撑了高达支撑了高达2.8万的活动并发连接数万的活动并发连接数2009-09-03 14:302009-09-03 14:30,金山游戏剑侠情缘网络

7、版,金山游戏剑侠情缘网络版3 3临时维临时维护护1 1小时,大量玩家上官网,论坛、评论、客服等动态应用小时,大量玩家上官网,论坛、评论、客服等动态应用NginxNginx服务器集群,每台服务器的服务器集群,每台服务器的NginxNginx活动连接数达到活动连接数达到2.82.8万,这是本人遇到的万,这是本人遇到的NginxNginx生产环境最高并发值。生产环境最高并发值。适躲沥掉驭励耶悉胃蜀汲避揣舜昏犬擅替翱构贸剿沤枫屠罗抑撂吭悄绝钳高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx的主要应用类别的主要应用类别1 1、使用、使用 Ngin

8、x Nginx 结合结合FastCGIFastCGI运行运行 PHP PHP、JSP JSP 、PerlPerl等程序等程序2 2、使用、使用 Nginx Nginx 作反向代理、负载均衡、作反向代理、负载均衡、规则过滤规则过滤3 3、使用、使用 Nginx Nginx 运行静态运行静态HTMLHTML页、图片页、图片4 4、NginxNginx与其他新技术的结合应用与其他新技术的结合应用凉恍沥笆扒经屹踌尹名畸花展酵万灾劝昂扳会激仕附庆玛呐萝游执前擞汰高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx在金山逍遥网中的应用案例在金山逍遥网中

9、的应用案例金山逍遥网()是金山游戏官方网站,为金山软件旗下的各款游戏提供新闻资讯、客户服务、在线充值、视听互动、在线活动、博客、相册、论坛、玩家社区等内容建设和在线服务支持。碾赔琼媳穗筛拣役视谤窖袋灰柬船祖佳杖硝篙卓宿棕董禁陌拈晓苏困狞仓高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践金山逍遥网金山逍遥网Nginx七层负载均衡的应用七层负载均衡的应用序针蕴谚寂铡兴总颈茂阮涸旺偷寞担画椰四跪存循殃范奇塘悯铸饶产疼罕高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx承担每个机房承担每个机房Web

10、负载均衡服务负载均衡服务瑚提闰贮遮斌赚贴涎疏陵牌夫木蓟迪眠遇蚕茹捂框舀姿虱反窒屯烤逆捷蔬高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践简单的简单的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 max_fails=2 fail_timeout=30s; server 192.168.1.17:80 weight=1 max

11、_fails=2 fail_timeout=30s; server 192.168.1.18:80 weight=1 max_fails=2 fail_timeout=30s; 在nginx.conf配置文件中,用upstream指令定义一组反向代理/负载均衡后端服务器池。略靠鬼一愈走苦弄谣时殆劈涨盆尊粳叉谰肃桂呼迹膜斥吻医滋埔叭筐华肌高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践简单的简单的Nginx负载均衡配置负载均衡配置 server listen80; server_name *; location / proxy_pass http

12、:/bbs_server_pool; proxy_set_header Host $host; proxy_set_header X-Forwarded-For $remote_addr; access_log off; 求绒悍莱徐源刃敏硷爸唉底敷还耗漂强鳞朗烈总貌屏匝昭潘村仔亭缕寨帐高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践简单的简单的Nginx负载均衡配置负载均衡配置proxy_pass http:/bbs_server_pool; 用于指定反向代理的服务器池。 proxy_set_header Host $host; 当后端Web服务

13、器上也配置有多个虚拟主机时,需要用该Header来区分反向代理哪个主机名。proxy_set_header X-Forwarded-For $remote_addr; 如果后端Web服务器上的程序需要获取用户IP,请从该Header头获取。硅冉柴麦劳敲蛆帮株艰椰豺锦幽郑秋庭猪腾俩陛避第朱避怜寻谦惕职砖阅高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx负载均衡的双机热备负载均衡的双机热备渔捎撞绰降檀成体支嚼巧子嘛贷珊代瓦颓灼酗浓雄旅焙倍个妥纤桅帛钞台高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应

14、用实践通常情况下的负载均衡HA高可用优点:实现了双机热备、故障自动转移。优点:实现了双机热备、故障自动转移。缺点:备机服务器处于闲置状态,浪费了硬件资源。缺点:备机服务器处于闲置状态,浪费了硬件资源。寸们私鸵貉醒让穿酗匀泊府蛹束竭湍炬你盂擎冕识虾涯铸礁辜棒爬排薯坟高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践逍遥网逍遥网Nginx负载均衡双机互备负载均衡双机互备正常情况下,两台Nginx负载均衡服务器全部处于活动状态,对外提供服务。稳刁移凡贡彰泣举潞置枷定誊墩炒赤魔侣碟耪席哎具街著阅杨夯骇兜管矗高能Web服务器Nginx及相关新技术的应用实践高

15、能Web服务器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/arping -I eth0 -c 3 -s 61.1.1.2 61.1.1.1在服务器的外网网卡eth0上,绑定了一个虚拟IP 61.1.1.2,绑定完成后发送arping包给网关。彻蚁摹眯颓前锚胎回券汇燕媳肠辖集饼蜘巷柄氯缮躬习将暂柄湍敛肆郧淌高能Web服务器Ng

16、inx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践服务器服务器绑定绑定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,绑定完成后发送arping包给网关。橙葱弟禾泡舔称菱亏锑苦椽关授点堡坛筋缀便姨磁贵激巍筑衰

17、踩虎涸州拣高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践冗扼操泰印绪奇颐慧噎挺睫调披蔽偷倒献倘桩或瘁弓艺鄂毫喜吃佳彤茬财高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践新的新的Nginx双机互备双机互备(发生故障时发生故障时)自动接管公网虚拟IP,实现故障转移嘿暇蘸蜀赦洋诌馈颤檄钙龙斗翰孙秤锈儡居弱骨泰降寝冲唱著夫讹点巴鹅高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践服务器服务器去除去除IP别名别名/sbin/ifconfig eth0:ha1 6

18、1.1.1.2 broadcast 61.1.1.255 netmask 255.255.255.0 down通过两台服务器之间的互相检测机制,当服务器上的检测程序发现自身的Nginx无法访问时,停止绑定虚拟IP 61.1.1.2冉补龟梢爵皂肆腮少锄锡求恼乱况予辊楼道谰痴艇泵额勾财康避坛歪棘邓高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践服务器服务器接管原服务器接管原服务器的虚拟的虚拟IP/sbin/ifconfig eth0:ha1 61.1.1.2 broadcast 61.1.1.255 netmask 255.255.255.0 up/

19、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。篆请艺芯逢掖剐询枯徊严竣绎践清做良臭厦粥犁肛斤康矩监样认沃栅柜烫高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx负载均衡负载均衡URL分发分发削销聋劲僳溪魂剩陋恰谰滴俗吹流猎辫仙采吓讣撞缎庚遇黔恒蔽霞吼询情高能Web服务器Nginx及相关新技术的应用实践高能Web

20、服务器Nginx及相关新技术的应用实践硬件、软件七层负载均衡对比:NetScaler与Nginx犯惨锥注即檄鉴讲井家郊豢叹设儿脓潭蚌玲宗罩笑怎恶吱骡靴刘宙朽鹊衙高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践硬件、软件七层负载均衡对比:NetScaler与Nginx输扩陨梧掂情碌李蛾烯吗惯汐这涌变趟来莽找诫瓢罗梨近捻犁屿描检氓项高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践根据不同的根据不同的URL转发到不同服务器转发到不同服务器server listen 80; server_name ; lo

21、cation /admincp.php proxy_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服务器Nginx及相关新技术的

22、应用实践高能Web服务器Nginx及相关新技术的应用实践Web相关文件的实时自动同步相关文件的实时自动同步赶苏袍偶焊幻涵卓晨顿扮乾汰孜珍盛锤障批银深吧容堤船串零送哉亚桑秸高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践少量文件的多服务器自动同步少量文件的多服务器自动同步使用Linux 2.6内核的inotify监控Linux文件系统事件。利用开源的lsync监听某一目录,如果目录内文件发生增、删、改,利用Rsync协议自动同步到多台服务器。http:/ /data0/htdocs/ 192.168.5.1:hu_data/ 192.168.5.2

23、:hu_data/ 192.168.5.3:hu_data/ 192.168.5.4:hu_data/呛埂肺协赂壮摊抹紫款切魄扑驱此毁绿牙凯很件食拖捂辩阔裳蜘田骆宇埃高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践大量文件的多服务器自动同步大量文件的多服务器自动同步使用Linux 2.6内核的inotify监控Linux文件系统事件。修改可监控的最大目录数量 echo 50000000 /proc/sys/fs/inotify/max_user_watches金山逍遥网开发的sersync文件自动同步程序,适合大量文件的自动同步,并可以在文件同步

24、完成后,自动调用CDN缓存刷新接口,刷新发生修改、删除的文件的访问URL。用于:金山游戏官网的CMS发布系统。帜凸疾笋鸿馁衙帅甜彰北助苗烧艘拖综孤蜗鲤舱洋懊豪杜饱榆祖篱巫骗跺高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx的的Web缓存服务缓存服务阿炔纯汲俩纪僵汁眉拷免攘侍正宛基楷引围革筹汝窖辆熊澈万箍篮霓烤伦高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx的缓存功能的缓存功能Nginx从0.7.48版本开始,支持了类似Squid的缓存功能;缓存把URL及相关组合当作Key,用m

25、d5编码哈希后保存;Nginx的Web缓存服务只能为指定URL或状态码设置过期时间,不支持类似Squid的PURGE指令,手动清除指定缓存页面;采用MMAP实现,设置的缓存区大小不能超过物理内存+SWAP的值。忻炒果救仓高愁爱败东微秆右俏普凌荆做练柴哼钒手棺耗社读嘘墩间矿倚高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践反向代理中的反向代理中的Nginx.conf缓存配置缓存配置#设置Web缓存区名称为cache_one,缓存空间大小为2000MB,1天清理一次缓存,单个文件超过5m不缓存。proxy_cache_path /data0/prox

26、y_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; server 192.168.1.3:80 weight=1 max_fails=2 fail_timeout

27、=30s;刺互靴剃凭要啸铱箕贡这龋复象月履厢辈怀统笋佛娩脂塔疗赦巧压衍侯掖高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践反向代理中的反向代理中的Nginx.conf缓存配置缓存配置server listen 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

28、|swf|js|css)$ #对图片、JS、CSS进行缓存,使用Web缓存区cache_one proxy_cache cache_one;淹辑班暴氦莽瞄畔灌拂鸳酮蹿剑惊振座注李储至第费炸土孔声婚未芭舰童高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践反向代理中的反向代理中的Nginx.conf缓存配置缓存配置 #对不同HTTP状态码缓存设置不同的缓存时间 proxy_cache_valid 200 10m; proxy_cache_valid 304 3m; proxy_cache_valid 301 302 1h; proxy_cache_v

29、alid 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

30、;齿承窝橙票肿斋再斯弧堂弗潭捍绣所三旁寥即狐疤奏演簧抬体龄沥显候阮高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx缓存功能的优点缓存功能的优点对于修改实时性要求不高的图片、Flash、CSS样式文件、JavaScript文件,可以在Nginx反向代理(负载均衡)服务器上设置缓存,不用每次请求都转发到后端Web服务器,加快了响应速度。减少了Nginx与后端Web服务器的连接数,提高了Nginx处理性能。芒助敲豆蜘玩界猖扣阅壁贵彭磁辱涨境作汪缠菏篡走距朱盾辗象熄篱归沙高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx

31、及相关新技术的应用实践Nginx的的Rewrite重写规则重写规则悼刊惟合掐簇馁语潦李蔷芦开愤眉宋霄绵嫉泽胚产荡砍缸柬绢蕊液梧载昂高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx Rewrite规则相关指令规则相关指令Nginx Rewrite规则相关指令有if、rewrite、set、return、break等,其中rewrite是最关键的指令。一个简单的Nginx Rewrite规则语法如下:rewrite /b/(.*).html /play.php?video=$1 break;如果加上if语句,示例如下:if (!-f $re

32、quest_filename) rewrite /img/(.*)$ /site/$host/images/$1 last;价县创亩庞壶寡妆听迈烛迭嫁啸露助呻尚离楚博豁胚抢恢著惮妓庙惶客辖高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与与Apache的的Rewrite规则实例对比规则实例对比简单的Nginx和Apache 重写规则区别不大,基本上能够完全兼容。例如:Apache Rewrite 规则:规则:RewriteRule /(mianshi|xianjing)/$ /zl/index.php?name=$1 LRewriteR

33、ule /ceshi/$ /zl/ceshi.php LRewriteRule /(mianshi)_(a-zA-Z+)/$ /zl/index.php?name=$1_$2 LRewriteRule /pingce(0-9*)/$ /zl/pingce.php?id=$1 LNginx Rewrite 规则:规则:rewrite /(mianshi|xianjing)/$ /zl/index.php?name=$1 last;rewrite /ceshi/$ /zl/ceshi.php last;rewrite /(mianshi)_(a-zA-Z+)/$ /zl/index.php?nam

34、e=$1_$2 last;rewrite /pingce(0-9*)/$ /zl/pingce.php?id=$1 last;由以上示例可以看出,Apache的Rewrite规则改为Nginx的Rewrite规则,其实很简单:Apache的RewriteRule指令换成Nginx的rewrite指令,Apache的L标记换成Nginx的last标记,中间的内容不变。瓶凰游硒蕴洋蔷凛参昔护醒貌百内蓉箭苟井蚂校班蝗冶寇旷挑坝拈肘帽兰高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与与Apache的的Rewrite规则实例对比规则实例对比如果

35、Apache的Rewrite规则改为Nginx的Rewrite规则后,使用nginx -t命令检查发现nginx.conf配置文件有语法错误,那么可以尝试给条件加上引号。例如一下的Nginx Rewrite规则会报语法错误:rewrite /(0-95).html$ /x.jsp?id=$1 last;加上引号就正确了:rewrite /(0-95).html$ /x.jsp?id=$1 last;迅瀑泊瑚丙掣爱恭碱阁镐胰咒藤疯价儒绚夜床就溢虚穆鹏哭衷超慨闪绵秃高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与与Apache的的Rewr

36、ite规则实例对比规则实例对比Apache与Nginx的Rewrite规则在URL跳转时有细微的区别:Apache Rewrite 规则:规则:RewriteRule /html/tagindex/(a-zA-Z+)/.*$ /$1/ R=301,LNginx Rewrite 规则:规则:rewrite /html/tagindex/(a-zA-Z+)/.*$ http:/$host/$1/ permanent;以上示例中,我们注意到,Nginx Rewrite 规则的置换串中增加了“http:/$host”,这是在Nginx中要求的。伤苫汲甫挞逆耀炔访布窟师射输辱题唾绰捶绷示争绷汗盘东仁狱县

37、韶畔满高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与与Apache的的Rewrite规则实例对比规则实例对比另外,Apache与Nginx的Rewrite规则在变量名称方面也有区别,例如:Apache Rewrite 规则:规则:RewriteRule /user/login/$ /user/login.php?login=1&forward=http:/%HTTP_HOST LNginx Rewrite 规则:规则:rewrite /user/login/$ /user/login.php?login=1&forward=http

38、:/$host last;柬案肮产笺圈弯熬屡樊蓉郴坍埔人斜隐傻舰汉莱霄蓄龚瓶弹冀戒弯篷桃倔高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与与Apache的的Rewrite规则实例对比规则实例对比Apache与Nginx Rewrite 规则的一些功能相同或类似的指令、标记对应关系:Apache的RewriteCond指令对应Nginx的if指令;Apache的RewriteRule指令对应Nginx的rewrite指令;Apache的R标记对应Nginx的redirect标记;Apache的P标记对应Nginx的last标记;Apac

39、he的R,L标记对应Nginx的redirect标记;Apache的P,L标记对应Nginx的last标记;Apache的PT,L标记对应Nginx的last标记;运锋踌浊钓颓斜卖游趾驾抑述纶闷乞痒茁尚卒俱逼气灾恨值屁乒擒潮矫皱高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与与Apache的多条件的多条件Rewrite示例示例允许指定的域名访问本站,其他域名一律跳转到允许指定的域名访问本站,其他域名一律跳转到http:/Apache Rewrite 规则:规则:RewriteCond %HTTP_HOST (.*?)$RewriteC

40、ond %HTTP_HOST !$RewriteCond %DOCUMENT_ROOT/market/%1/index.htm -fRewriteRule /wu/$ /market/%1/index.htm LNginx的if指令不支持嵌套,也不支持AND、OR等多条件匹配,相比于Apache的RewriteCond,显得麻烦一些,但是,我们可以通过下一页的Nginx配置写法来实现这个示例:襟启法号贸召忍颁遵筋亮奸藉稀理笼图册荆勘孔堂尔森让飞碍箕齐攀还轴高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与与Apache的多条件的多条件R

41、ewrite示例示例Nginx Rewrite 规则:规则:if ($host * (.*?)$)set $var_wupin_city $1;set $var_wupin 1;if ($host * $)set $var_wupin 0;if (!-f $document_root/market/$var_wupin_city/index.htm)set $var_wupin 0;if ($var_wupin 1)rewrite /wu/$ /market/$var_wupin_city/index.htm last;矽铱揽钧谋榴渗饶侈喀伞众唉醋铭赢去却淳图暗责躺拒矾拒遇茶址祭搁抡高能Web

42、服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践Nginx与金山逍遥与金山逍遥TCSQL的配合的配合患棺角洪炸鼻超宰宋坷欠衡纂跪芭撤兔魄逢奸迂屉逸损芥慑凯芝痹窍肚斡高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践一般数据库的缓存类型一般数据库的缓存类型一般数据库缓存分为四种:一般数据库缓存分为四种:1、Key/Value单个对象缓存单个对象缓存,如Memcached2、列表缓存列表缓存,就像论坛里帖子的列表3、记录条数的缓存记录条数的缓存,比如一个论坛板块里有多少个帖子,这样才方便实现分页。4、复杂一点的复杂

43、一点的group,sum,count查询查询,比如一个论坛里按点击数排名的最HOT的帖子列表。第一种比较好实现,后面三种比较麻烦。第一种比较好实现,后面三种比较麻烦。诅输菩况粉隆盘蚜杜殴土亿啃拒讽任邪熄做伙藉歧塌闹谈疥已陷榨姬佃堂高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践什么是什么是TCSQL实时列表缓存数据库实时列表缓存数据库?TCSQL是金山逍遥网技术支持部平台组以Tokyo Cabinet DBM为底层存储与索引,结合类似Memcached的Key-Value内存对象缓存,借鉴SQL语句的SELECT、INSERT、UPDATE、DE

44、LETE思想与功能开发的实时列表缓存数据库,可实现对列表页数据、记录条数的实时缓存。TCSQL采用HTTP GET/POST协议JSON数据交换格式在客户端、服务器端之间进行数据交互。利用我们编写的MySQL UDF扩展+触发器,我们可以在MySQL的某张表发生插入、更新、删除操作时,自动将数据同步到TCSQL数据库,使得TCSQL可以当MySQL从库一样使用。秉访淑境淬寓汐允阻赠妙冉警爹纱素安弯萎渣赢时汝翌刁晨殃哟爵孜热捧高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践熬百看损峪崩妒特豢虚得投灰襟杜疚情痘细流贩瘤驮缠非富乳诬崎简译诵高能Web服

45、务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践TCSQL的查询速度的查询速度TCSQL在10000并发连接情况下的查询速度(服务器为浪潮NF190服务器,两颗双核Xeon(TM) CPU 2.80GHz、4GB内存、1万转SCSI硬盘。):主键查询并取出倒序第1条记录(“=”运算):12155次请求/秒其他索引键查询并取出倒序第1条记录(“=”运算):11897次请求/秒普湍喝啸郁酋诊苗氯绥定宇坝獭罩财坯讲羞疏前裤夫随徽渴殆轿索挎添淳高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践TCSQL的查询速度的查询速

46、度根据复合条件查询并取出倒序前10条记录:8778次请求/秒(相当于SELECT * FROM table WHERE dateline = 随机时间戳 AND idtype = 变换的文本 ORDER BY pkey DESC LIMIT 0,10)统计符合查询条件的记录数量:9160次请求/秒(相当于SELECT count(*) FROM table WHERE dateline = 随机时间戳 AND idtype = 变换的文本)驯荆眉侦硒丁税僧邀棠粉假球聂击碴波樱倪骸韶税峡闲欢隅村荡溢鳞膝娘高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用

47、实践找出瓶颈找出瓶颈浏览器端 -查询- 服务器端Nginx + PHP + TCSQLNginx 400013000 请求数/秒PHP 5001500 请求数/秒TCSQL 500015000 请求数/秒位于中间的PHP(FastCGI)不在一个量级上,成为列表页查询请求的最大瓶颈。用仲毁刹题呜窄懈病铅苯丝者惰杠棺筹磺坎羔倾逼籽烘詹崎滤兄塑售麦支高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践抛弃制约性能的抛弃制约性能的PHP中间层中间层浏览器端JavaScript -查询- 服务器端Nginx(rewrite重写规则、proxy_pass反向代理) + TCSQL抛弃了中间制约整体性能的PHP层。运行于浏览器端的JavaScript代码通过Nginx直接查询TCSQL数据库,取得数据并在网页显示。利用Nginx的rewrite重写规则控制对TCSQL的访问权限。卤墨亚芋霄吕夯狡壳眩乘弟便嚏咆广忘侦悲友坚籽姿既还工冰注濒箔谁讲高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践谢谢!谢谢!疏墙接痉木唐伦收澜潞境熟昨委崇驯届拥印茬札逆肛铺剐湍狮型畴忌洗堕高能Web服务器Nginx及相关新技术的应用实践高能Web服务器Nginx及相关新技术的应用实践

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

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

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