结合Ngxlua运用Nginx预加载热点数据ppt课件

上传人:汽*** 文档编号:589891457 上传时间:2024-09-12 格式:PPT 页数:28 大小:541KB
返回 下载 相关 举报
结合Ngxlua运用Nginx预加载热点数据ppt课件_第1页
第1页 / 共28页
结合Ngxlua运用Nginx预加载热点数据ppt课件_第2页
第2页 / 共28页
结合Ngxlua运用Nginx预加载热点数据ppt课件_第3页
第3页 / 共28页
结合Ngxlua运用Nginx预加载热点数据ppt课件_第4页
第4页 / 共28页
结合Ngxlua运用Nginx预加载热点数据ppt课件_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《结合Ngxlua运用Nginx预加载热点数据ppt课件》由会员分享,可在线阅读,更多相关《结合Ngxlua运用Nginx预加载热点数据ppt课件(28页珍藏版)》请在金锄头文库上搜索。

1、-1-运用运用Nginx预加加载热点数据点数据产品开发部产品开发部 李文祥李文祥20192019年年2 2月月-2-一、一、Nginx引引见世界第二大网世界第二大网络效力器效力器-3-一、一、Nginx引引见超高速、高可扩展的、很可靠超高速、高可扩展的、很可靠每台效力器支持每台效力器支持100000 +100000 +并行衔接并行衔接最低最低, ,内存占用内存占用7 7层加速和缓存层加速和缓存平安高效的平安高效的灵敏并且逻辑明晰灵敏并且逻辑明晰-4-一、一、Nginx引引见如:淘宝的工程师清无王晓哲和春来章亦春所开发的 nginx_lua_module而春来所开发的ngx_openresty更

2、是经过集成20多个组件,将Nginx本身变成了一个完全的运用开发平台大量的第三方扩展模块令大量的第三方扩展模块令NginxNginx越来越强大越来越强大-5-一、一、Nginx引引见 配配置置文文件件根根本本构构造造-6-一、一、Nginx引引见NginxNginx模块任务原理模块任务原理-7-二、二、预备知知识NginxNginx的的lualua模模块块安装方法安装方法 4 4个步个步骤骤 安装安装LuaJIT 2.0 or Lua 5.1 (Lua 5.2 LuaJIT 2.0 or Lua 5.1 (Lua 5.2 暂暂不支持不支持).).下下载载ngx_devel_kit (NDK)

3、ngx_devel_kit (NDK) 模模块块下下载载最新版本的最新版本的lualua模模块块下下载载最新版本的最新版本的NginxNginx代代码码安装源代安装源代码码下下载载地址及地址及编译编译命令命令详见详见官方官方wikiwiki:wiki.nginx.org/HttpLuaModule#Installationwiki.nginx.org/HttpLuaModule#Installation-8-二、二、预备知知识一一NginxNginx配置中配置中变量定量定义: Nginx Nginx配置文件的配置文件的serverserver或或loction loction 配置段配置段 s

4、et $varnamehello; set $varnamehello;-9-二、二、预备知知识二加二加载程序配置程序配置传送送给PHPPHP环境境变量:量:1. 1. 在在locationlocation中直接定中直接定义location .*.(php|php5)?$ location .*.(php|php5)?$ fastcgi_pass 127.0.0.1:9000; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_index index.php; include fcgi.conf; include fcg

5、i.conf; fastcgi_param route “default fastcgi_param route “default:“m:“m:“sns:“sns,“c,“c:“index:“index,“a,“a:“init:“init; PHPPHP调用方法用方法: :getenv(route ); getenv(route ); 或者或者 $_SERVERroute; / $_SERVERroute; /不引荐不引荐json_decode(getenv(route ),true);json_decode(getenv(route ),true);-10-二、二、预备知知识二加二加载程序配

6、置程序配置传送送给PHPPHP环境境变量:量:2. 2. 在在locationlocation中中经过includeinclude指令援用外部文件指令援用外部文件/home/wwwroot/configs/home/wwwroot/configs/下的配置文件:下的配置文件:文件文件/home/wwwroot/configs/cat route.fps /home/wwwroot/configs/cat route.fps 的内容:的内容:rootlocalhost configs# cat route.fps rootlocalhost configs# cat route.fps #Fas

7、tcgi Route Params #Fastcgi Route Params #php example getenv(route);#php example getenv(route);fastcgi_param route “defaultfastcgi_param route “default:“m:“m:“sns:“sns,“c,“c:“index:“index,“a,“a:“init:“init;-11-二、二、预备知知识二加载程序配置传送给二加载程序配置传送给PHPPHP环境变量:环境变量:2. 2. 在在locationlocation中经过中经过includeinclude指令

8、援用外部文件指令援用外部文件location .*.(php|php5)?$ location .*.(php|php5)?$ fastcgi_pass 127.0.0.1:9000; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_index index.php; include fcgi.conf; include fcgi.conf; include /home/wwwroot/configs/*.fps; include /home/wwwroot/configs/*.fps; -12-二、二、预备知知识三用到

9、的几个三用到的几个NginxNginx模块:模块:Nginx Standard Modulememcached3rth Part Modulelua echo rds-json-13-二、二、预备知知识三用到的几个三用到的几个NginxNginx模模块:1.Nginx Memcached 1.Nginx Memcached 模模块 从从缓存中存中读取取citylistcitylist数据:数据: set $memcached_key citylist“; set $memcached_key citylist“; memcached_pass 127.0.0.1:11211; memcache

10、d_pass 127.0.0.1:11211;-14-二、二、预备知知识Location /mem default_type text/html; set $memcached_key “citylist; memcached_pass 127.0.0.1:11211;-15-二、二、预备知知识三用到的几个三用到的几个NginxNginx模模块:2.Nginx Lua2.Nginx Lua模模块location /lua location /lua set $n 5; set $n 5; set_by_lua $var1 set_by_lua $var1 local a = 1 local a

11、 = 1 local b = 2 local b = 2 ngx.var.n = a + ngx.var.n ngx.var.n = a + ngx.var.n return ngx.var.n + b return ngx.var.n + b ; ; set_by_lua_flie $var2 /home/www/lua/concat.lua; set_by_lua_flie $var2 /home/www/lua/concat.lua; -16-二、二、预备知知识三用到的几个三用到的几个NginxNginx模模块:3.Nginx echo3.Nginx echo模模块location /e

12、cho location /echo default_type text/html; default_type text/html; set $var “Hello Word set $var “Hello Word; ; echo $var; echo $var; 4.Nginx rds-json 4.Nginx rds-json 模模块Location /mem Location /mem set $memcached_key “citylist set $memcached_key “citylist; ; memcached_pass 10.8.9.237:11212; memcach

13、ed_pass 10.8.9.237:11212; rds_json on; rds_json on; error_page 404 /error.html; error_page 404 /error.html; -17-三、三、缓存架构存架构谋划改良划改良传统架构传统架构ClientNginxPhp-fpmPHPCache Server(Memcached、TT)读写-18-三、三、缓存架构存架构谋划改良划改良架构演进架构演进ClientNginxPhp-fpmPHPCache Server(Memcached、TT)读取写入-19-三、三、缓存存谋划改良划改良运用运用Nginx HTTP

14、Nginx HTTP规范模块规范模块 Memcached Memcached模块模块可以可以MemcachedMemcached协议衔接到协议衔接到MemcachedMemcached效力器效力器Tokyo Tyrant Tokyo Tyrant 也拥有也拥有MemcachedMemcached兼容协议兼容协议-20-三、三、缓存存谋划改良划改良这就意味着就意味着NginxNginx可以运用可以运用同同样的方法的方法调用用MemcachedMemcached和和TTTT-21-三、三、缓存存谋划改良划改良将将memcached/TT memcached/TT 中的数据中的数据缓存到存到Ngin

15、xNginx中:中: lua_shared_dict mcity 10m; lua_shared_dict mcity 10m; location /ttserver location /ttserver internal; internal; set $memcahced_key $arg_key; set $memcahced_key $arg_key; memcached_pass 10.8.9.237:11212; memcached_pass 10.8.9.237:11212; -22-三、三、缓存存谋划改良划改良#写入nginx缓存location /set allow 192.1

16、68.1.0/32; deny all; content_by_lua local mcity = ngx.shared.mcity local list=ngx.location.capture(/ttserver“,args=key=“citylist) mcity:set(“citylist, list.body) ;#读取缓存并赋值location .*.(php|php5)?$ set_by_lua $citylist local mcity = ngx.shared.mcity return mcity:get(“citylist) ; fastcgi_param citylist

17、 $citylist; include /home/wwwroot/configs/*.fps; 获取缓存并赋值给fastcgi参数加载portal所需的database、cache、interface、route等配置参数-23-三、三、缓存存谋划改良划改良PHPPHP脚本:脚本:?php?php$cache = json_decode(getenv(cache),true);$cache = json_decode(getenv(cache),true);$database = $database = json_decode(getenv(database),true);json_deco

18、de(getenv(database),true);$interface = $interface = json_decode(getenv(interface),true);json_decode(getenv(interface),true);$route = json_decode(getenv(route),true);$route = json_decode(getenv(route),true);$system = json_decode(getenv(system),true);$system = json_decode(getenv(system),true);$citylis

19、t = $citylist = json_decode(getenv(citylist),true);json_decode(getenv(citylist),true);-24-四、四、10万次万次读取性能取性能对比比性能测试方法性能测试方法( (这里测试的不是并发这里测试的不是并发) ):分别用分别用Ngx_luaNgx_lua和和PHPPHP的方法读取热点数据:的方法读取热点数据:citylistcitylist在在NginxNginx的日志中记录恳求处置时间,分别测的日志中记录恳求处置时间,分别测1010次取平均值次取平均值-25-四、四、10万次万次读取性能取性能对比比测试场景测试场

20、景A A:规范:规范Nginx FastCGINginx FastCGI配置配置 PHP PHP读取读取memcachedmemcached数据数据ClientNginxPhp-fpmPHPCache Server(Memcached、TT)读写-26-四、四、10万次万次读取性能取性能对比比测试场景测试场景B B:运用:运用ngx_luangx_lua模块特性在模块特性在NginxNginx配置中读取并传送给配置中读取并传送给PHPPHPClientNginxNginxPhp-fpmPHPCache Server(Memcached、TT)读取-27-四、性能四、性能对比比约267倍倍-28-THE ENDTHE END

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

最新文档


当前位置:首页 > 资格认证/考试 > 自考

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