Lua在Nginx中的应用

如果无法正常显示,请先停止浏览器的去广告插件。
分享至:
1.   Application of Lua in Nginx   Lua 在 Nginx 中的应用   ☺agentzh@gmail.com☺ 章亦春 (agentzh)     2015.04  
2.
3.
4.
5.
6.
7.
8.   ☺ No "callback hell". ☺ 100% nonblocking IO   没有“回调地狱”。 100% 非阻塞I/O.  
9.
10.
11.
12.
13.   ☺ openresty.org  
14.   ☺ qa.openresty.org   OpenResty 测试集群  
15.
16.      /ipthr­ t10­ lnxx66'nxeh g_u  $.dsace r­ 7 a'iu 8_4 g_conxla   eursa es  ahns  Rqie tlat5mcie.   ukt1 lnxla(6 i)  bce :t­g_u 24mn   ukt2 w­g_u wnxlatvnxeh hnxeh 17mn  bce :tvnxlat­g_u r­g_cot­g_co(6 i)   ukt3 r­g_u hnxlatnxlat­g_cot­g_co(6 i)  bce :tvnxlat­g_u ­g_u vnxeh rnxeh 12mn   ukt4 vnxlat­g_cot­g_u h­g_cotnxeh 15mn  bce :t­g_u lnxeh onxlatvnxeh ­g_co(4 i)   ukt5 h­g_u rnxlatvnxeh wnxeh onxeh 9 i)  bce :tvnxlat­g_u w­g_cot­g_cot­g_co(0mn   .  ..  
17.
18.   ☺ Lua SSL ☺ Lua CDN ☺ Lua WAF (Lua Web 防火墙)  
19.   ☺ Light threads   轻量级线程  
20.
21.     oa hedA r   lcltra_,er=       g.hedsanfn1      nxtra.pw(uc)     ­tra_ ep unn snhoosy  ­ hedAkesrnigaycrnul   ­i h akrudo h urn  ­ ntebcgon ftecret   ­"ih hed.  ­ lgttra"  
22.     oa k e1 e2=  lclo,rs,rs          g.hedwi(hedA hedB        nxtra.attra_,tra_)
23.     oa k r  g.hedkl(hedA  lclo,er=nxtra.iltra_)  
24.   ☺ lua­resty­websocket   WebSocket 服务器和客户端  
25.     oa evr=rqie"et.esce.evr  lclsre  eur rsywboktsre"     oa b r  evrnw  lclw,er=sre:e{     ieu  00 ­ nmlieod    tmot=50, ­i ilscns     a_ala_e  53,    mxpyodln=655     }     oa aa y,er=w:evfae)  lcldt,tp r  brc_rm(     oa ye,er=w:edtx(Hlowrd)  lclbts r  bsn_et"el ol"  
26.   ☺ full­duplex cosockets   全双工的基于协程的套接字  
27.   ☺ SSL/TLS cosocket    
28.     oa ok=nxsce.c(  lclsc  g.okttp)   oa k r  okcnet"w.lufaecm,  lclo,er=sc:onc(wwcodlr.o"                 43                 4)     k r  oksladhk(  o,er=sc:shnsae     as, ­dsbeSLssin    fle ­ ial S eso     wwcodlr.o" ­ N ae    "w.lufaecm, ­SInm     re ­vrf vrtig    tu ­ eiyeeyhn     )  
29.   ☺ ssl_certificate_by_lua     纯 Lua 动态服务 SSL 证书和私钥
30.
31.     s_etfct_yla'  slcriiaeb_u      oa s  eur nxsl    lclsl=rqie"g.s"     oa etcan rvky=m_oddt(    lclcr_hi,pi_e  yla_aa)     setslstdrcr(etcan)    asr(s.e_e_etcr_hi)     setslstdrpi_e(rvky)    asr(s.e_e_rvkypi_e)   ;  '  
32.
33.   ☺ ssl_balancer_by_lua   纯 Lua 编写 Nginx 全动态负载均衡器  
34.     ptem{  usra      evr0000    sre ...;     aacrb_u     blne_yla'       oa aacr=rqie"g.aacr      lclblne  eur nxblne"       oa ot ot=m_odbcedad(      lclhs,pr  yla_akn_dr)       setblne.e_u_erhs,pr)      asr(aacrstcrpe(ot ot)     ;    '     }  
35.   ☺ nginx­systemtap­toolkit   基于 Systemtap 的 Nginx 工具箱  
36.
37.   ☺ stapxx (stap++)   Systemtap 加上一点宏魔法……  
38.
39.   ☺ How CPU time is spent inside LuaJIT   CPU 时间在 LuaJIT 内部是如何分布的  
40.      jv­ttssx­ 51­agtm=0  $l­msae.x x52 ­r ie6   tr rcn 51(urlclnixwfsi/gn­a)  Sattaig52 /s/oa/gn­a/bnnixwf   laewi o 0scns.  Pes atfr6 eod..     bevd10 u­unn ape n goe 9urltdsmls  Osre 23Larnigsmlsadinrd4 neae ape.   opld 4 79smls  Cmie:6%(7 ape)    oe(yitrrtdLa:1%(7 ape)  CCd b nepee u) 4 12smls   nepee:1%(5 ape)  Itrrtd 3 18smls   abg olco cmie) %(8smls  GraeCletr(opld:3 4 ape)   abg olco ntcmie) %(2smls  GraeCletr(o opld:3 4 ape)   rc xtn:0 4smls  Taeeiig %( ape)  
41. ☺ When an nginx worker's CPU is too high...   当 nginx worker 进程的 CPU 太高时……
42.
43.      suigoenixwre rcs a h i 94.  #asmn n gn okrpoeshstepd167    g­p.x x167  $nxrssx­ 94   ANN:Taigpoes167  WRIG rcn rcs 94.   i tlCt n.  HtCr­ oed   17994]30rqsc  [36353 0 e/e   17994]25rqsc  [36354 3 e/e   17994]25rqsc  [36355 3 e/e   17994]16rqsc  [36356 6 e/e   17994]28rqsc  [36357 3 e/e   17994]24rqsc  [36358 3 e/e   C  ^  
44.      /apeb p167­ 0­  .t  $.sml­t­ 94 t2 u>ab   ANN:Taig167(otnixsi/gn)i srsaeol..  WRIG rcn 94 /p/gn/bnnix nue­pc ny.   ANN:Tm' p utignw.(tmytk  hl)  WRIG iesu.Qitn o..i a aeawie  
45.      sn rna rg' lm rp ol:  #uigBednGegsfaegahtos    tcclas­tpp .t>act  $sakolpesa.lab  .b    lmgahp .b  .v  $faerp.lact>asg  
46.
47.      suigtenixwre rcs i s167  #asmn h gn okrpoespdi 94:    jlasak.x ­r ie2 ­kpbdas­ 94  .t  $l­u­tcssx­agtm=0­si­avr x167>ab   tr rcn 94 /p/gn/bnnix  Sattaig167(otnixsi/gn)   laewi o 0scns  Pes atfr2 eod  
48.      sn rna rg' lm rp ol:  #uigBednGegsfaegahtos    tcclas­tpp .t>act  $sakolpesa.lab  .b    lmgahp .b  .v  $faerp.lact>asg  
49.
50.   ☺ When an nginx worker's CPU is low and the throughput is low...   当 nginx worker 进程的 CPU 很低, 同时吞吐量上不去的时候……  
51.
52.   ☺ off­CPU flame graphs from the sample­bt­off­cpu tool  
53.
54.
55.
56.   ☺ nginx­gdb­utils   基于GDB 的Nginx 工具箱  
57.
58.     gb b  (d)lt   :g_tplasce_c_eev  Cnxht_u_okttprcie   ..lbrsymslla11  @./i/et/yq.u:9   ..lbrsymslla50  @./i/et/yq.u:3   otn_yla1  cnetb_u:0  
59.     gb b ul  (d)ltfl   :g_tplasce_c_eev  Cnxht_u_okttprcie   ..lbrsymslla11  @./i/et/yq.u:9     oa sl"    lcl"ef:       al 04f8a)      tbe(x0118     oa sc"    lcl"ok:       al 04f8b)      tbe(x0110   ..lbrsymslla50  @./i/et/yq.u:3     oa sl"    lcl"ef:       al 04f84)      tbe(x0118     oa ot"    lcl"ps:       al 04f85)      tbe(x0110   .  ..  
60.     gb g  (d)lc   h urn eoysz alctdb C:886 ye  Tecretmmr ie(loae yG) 990bts  
61.     gb gsa  (d)lctt   57 t    ojcs a=96 v  1 i=8 u=716  112sr    bet:mx25,ag=5,mn1,sm792   97uvl   bet:mx2,ag=2,mn2,sm268   8 pa   ojcs a=4 v  4 i=4 u=38   14tra   bet:mx14,ag=12,mn58 u=674   0 hed  ojcs a=68 v  62 i=2,sm188   41poo   bet:mx267,ag=23,mn7,sm939   3 rt   ojcs a=224 v  24 i=8 u=616   92fn    bet:mx14 v  0 i=0 u=80   5 uc   ojcs a=4,ag=3,mn2,sm290   46tae   bet:mx240 v  87 i=6,sm880   4 rc   ojcs a=30,ag=15,mn10 u=264   95caa   bet:mx41,ag=1,mn1,sm556  26 dt   ojcs a=12 v  7 i=2 u=17   86 a    ojcs a=40,ag=27 i=2 u=935  191tb    bet:mx268 v  0,mn3,sm3426    9uaa   bet:mx169,ag=333 i=2 u=582     dt   ojcs a=705 v  91,mn3,sm332  
62.   ☺  Any questions? ☺   欢迎提问
63. A

Home - Wiki
Copyright © 2011-2024 iteam. Current version is 2.138.0. UTC+08:00, 2024-12-22 02:26
浙ICP备14020137号-1 $Map of visitor$