文件名称:
OpenResty-Best-Practices.pdf
开发工具:
文件大小: 3mb
下载次数: 0
上传时间: 2019-06-30
详细说明:OpenResty-Best-Practices.pdf子查询
1.6.10
不同阶段共享变量
1.6.11
防止SQL注入
1.6.12
如何发起新HTTP请求
1.6.13
LuaResty RedisLibrary
1.7
访问有授权验证的 Redis
1.7.1
select+set keepalive组合操作引起的数据读写锆误
1.7.2
redis接口的二次封装(简化建连丶拆连等细节)
1.7.3
redis接口的二次封装(发布订阅)
1.7.4
pipeline压缩请求数量
1.7.5
script压缩复杂请求
1.7.6
动态生成的| ua-resty-redis模块方法
1.7.7
LuaCjsonLibrary
1.8
json解析的异常捕获
1.8.1
稀疏数组
1.8.2
空tabe编码为ary还是 object
1.8.3
PostaresNginxModule
调用方式简介
1.9.1
不支持事务
1.9.2
超时
19.3
健康监测
1.9.4
SQL注入
19.5
LuaNginxModule
1.10
执行阶段概念
1.10.1
正确的记录日志
1.10.2
热装载代码
1.103
阻塞操作
1.10.4
缓存
1.105
sleep
1.10.6
定时任务
1.10.7
禁止某些终端访问
1.108
请求返回后继续执行
1.109
调试
1.10.10
请求中断后的处理
1.10.11
我的a代码需要调优么
1.10.12
变量的共享范围
1.10.13
动态限速
1.10.14
shared dict非队列性质
1.10.15
正硝使用长链接
1.10.16
如何引用第三方 resty库
1.10.17
body在 location中的传递
1.10.18
典型应用场景
10.19
[NginX状态查看器]
1.10.20
怎样理解 csocket
1.10.21
如何使用高速缓存]
1.10.22
如何安全启动唯一实例的tmer
1.10.23
如何正确的解析域名
1.10.24
LuaRestyDNSLibrary
1.11
使用动态DNS来完成HTTP请求
1.11.1
LuaResty Lock
1.12
缓存失效风暴
1.12.1
stream lua module
1.13
TCP代理负载]
1.13.1
[基本用法]
1.13.2
[故障细节]
1.13.3
balancer by lua
1.14
[自定义 upstream选举]
1.14.1
OpenResty与SSL
1.15
Https时代
1.15.1
动态加载证书和 OCSP stapling
1.15.2
TLS session resumption
1.153
测试
1.16
代码静态分析
1.16.1
单元测试
1.16.2
代码覆盖率
1.16.3
AP|测试
1.164
性能测试
1.165
持续集成
1.16.6
灰度发布
1.16.7
Web服务
1.17
AP的设计
1.171
数据合法性检测
1.17.2
协议无痛升级
1.173
代码规范
174
连接池
1.175
C10K编程
1.17.6
TIME WA|T问题
1.177
与 Docker使用的网络瓶颈
1.17.8
火焰图
什么时候使用
1.18.1
如何安装火焰图生成工具
1.18.2
如何定位问题
1.18.3
OpenResty周边
1.19
Vanilla/香草
1.19.1
为什么要升发 anilla
1.19.1.1
Vanilla致力解决的问题
1.19.1.2
组织结构
1.19.1.3
性能指标
1.19.1.4
Demo示例
1.19.1.5
新浪移动的 OpenResty之路
1.19.1
16
anla项目实践
1.19.1.7
新浪移动评论项目
1.19.1.7.1
新浪移动独立产品∨anil改造
1.19.1.7.2
Mashape/kong
1.19.2
Kong名字的来历( others/ kong/origin. md)
1.19.2.1
Kong能解决什么同题( others/kong/ apigateway. md)
1.19.2.2
国内外有哪些类似的产品 others,/kong/ products. md)
1.19.2.3
关键概念( (others/kong/ keyconcepts md
1.19.2.4
集群功能( others/kong/ cluster md)
1.19.2.5
升发自定义插件( others/kong/ plugin. md)
1.19.2.6
扩展已经存在的插件( others/ kong/plugin-upgrad md)
1.19.2.6.1
开发一个新的插件( others/kong/ plugin-new. md)
1.19.2.6.2
如何添加自己的uaap
1.19.3
零碎知识点记录
1.20
2016-7月汇总
1.20.1
Test: Nginx能指定现成的 nginx. conf,而不是自动生成一个吗
1.20.1.1
access日志字符编码问题
1.20.1.2
share dict中的过期时间有时候过期有时侯不过期?
1.20.1.3
Lua变量的传递和内存的使用
1.20.1.4
ngx log可不可以选择几个不同的 log path
1.20.1.5
2016-8月汇总
1.20.2
如何在后台升启轻量级线程来定时更新共享內存
1.20.2.1
如何使用os. geten获取系统环境变量
1.20.2.2
2016-10月汇总
1.20.3
一个 openresty内存“泄漏”问题
1.20.3.1
用do-end整理你的代码
1.20.3.2
lUa中如何 continue
1.20.3.3
调用FF|出现"tab| e overflow"
1.20.3.4
如何定位 openresty崩潰bug
1.20.3.5
Open Resty最住实践
在2012年的时候·加入到奇虎360公司’为新的产品做技术选型。由于之前一直混迹在
Python圈子里面’也接触过 Nginx C模块的高性能开发’一直想找到一个兼备 Python快速
开发和 NginX C模坎高性能的产品。看到¤ pen Resty后’有发现新大酷的感觉。
于是在新产品里面力推 OpenRes↓y,团队里面几乎没人支持,经过几轮性能测试,虽然轻松
击败所有的其他方案,但是其他开发人员并不愿意参与到基于 OpenResty这个“陌生”框架的
开发中来。于是我开始了一个人的 OpenRest之旅,刚开始经历了各种技术挑战’庆幸有详
细的文档’以及春哥和邮件列表里面热情的帮助,成了团队里面bug最少和几乎不用加班的
同学
2014年’团队选来了一批訢鲜血液’很有技术品味,先后选择 OpenResty来作为技术方
向。不再是一个人在战斗’而另外一个新问题摆在团队面前,如何保证大家都能写出高质量
的代码’都能对◎ penResty有深入的了解?知识的沉淀和升华’成为一个迫在眉睫的问题。
我们选择把这几年的一些浅薄甚至可能是错误的实践’通过 giftbook的方式公开出来,一方面
有利于团队自身的技术积累,另一方面,也能让更多的高手一起加入让 OpenResty的使用
变得更加简单,更多的应用到服务湍开发中,毕竟人生苦短,少一些加班,多一些陪家人
这本书的定位是最佳实践,同时会对 OpenResty做简单的基础介绍。但是我们对初学者的建
议是’在看书的同时下载并安装 OpenResty,把官方网站的 Presentations浏览和实践几
请一直使用最新的 pen Resty版本来运行本书的代码
希望你能 enjoy OpenResty之旅!
我们团队在 OpenResty社区的待做任务列表,欢迎大家提交自己的贡献!
点我看书
本书源码在 Github上维护,欢迎参与:我要写书。也可以加入QQ群来和我们交流
·34782325(技术交流⑨群已满)
481213820(技术交流②群已满)
·124613000(技术交流③群
Socket编程发展
Socket编程发展
Linux Socket编程领域’为了处理大量连接请求场景’需要使用非阻塞Ⅳ○和复用。se|ect丶
po和 epoll是 LinUx AP|提供的O复用方式:自从 Linux26中加入了epo之后,高性能
服务器领域得到广泛的应用,现在比较出名的 Nginx就是使用epo‖来实现O复用支持高并
发’目前在高并发的场景下’ Nginx越来越收到欢迎。
据w3 techs在2015年8月10日的统计数据表明,在全球Top1000的网站中,有437%的
网站在使用 Nginx’这使得 Nginx超越了 Apache,成为了高流量网站最信任的Web服务器
足足有两年时问。已经确定在使用 Nginx的站点有: Wikipedia: Word Press,Redt
Tumb|r, Interest’ Dropbox, Slideshare, Stackexchange等,可以持续罗列好几个小时
他们太多了
下图是统计数据
6.8%
51,4
Apache
39,4%
32.4%0
27,3
25.0
286%
Nginx
38.1%
46.6%
43.7%
3.1%
14,6呃
Microsoft -lis
1
16.2%0
1.9
8,7
2.3%
2.1
LiteSpeed1.6%
1.0%
0,4
1.3
11.20
Google Servers 0.9%
2.0%
94%
N3Techs, com 10 Auqust 2015
■ Overa‖l■top1,000,000■top100,000■top10,000■top1,000
Percentages of websites using various web servers broken down by ranking
Socket编程发展
select模型
下面是 select函数接口:
int select (int n, fd set readfds, fd set "writefds
fd_ set *exceptfds, struct timeval *timeout )
select函数监视的文件抽速符分3类,分别是 writefds丶 readfds和 exceptfds。调用后 select
函数会阻塞’直到有描逑符就绪(有数据可读丶可写丶或者有 except)’或者超时( timeout
指定等待时间’如果立即返回设为nuⅷ即可)。当 select函数返冋后’通过遍历 fd set’来
找到就绪的描述符。
select目前几乎在所有的平台上支持其良好跨平台支持是它的一大优点。 select的一个缺点
在于单个进程能够监视的文件描逑符的数量存在最大限制’在 Linux上一般为1024,可以通
过修改宏定义甚至重新编译内核的方式提升这一限制’但是这样也会造成效率的降低。
po川模型
int poll(struct pollfd *fds, unsigned int nfds, int timeout)i
不同于 select使用三个位图来表示三个 fdset的方式’po使用一个 polled的指针实现。
struct pollfd I
int fd; /* file descriptor *
short events; / requested events to watch *
short revents:/* returned events witnessed */
po|fd结构包含了要监视的 event和发生的 event,不再使用 select“参数-值”传递的方式。同
时, polled并没有最大数量限制(但是数量过大后性能也是会下降)。和 select函数一样,
po返回后’需要轮询 polled来获取就绪的描逑符。
从上面看’ select和pol都需要在返回后’通过遍历文件描逑符来获取已经就绪的 socket
事实上,同时连接的大量客户端在一时刻可能只有很少的处于就绪状态’因此随着监视的描
逑符数量的增长·其效淬乜会线性下降。
epo!模型
epoll的接口如下
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.