当前位置:首页 > 工业技术
Web开发技术丛书  Nginx Lua开发实战
Web开发技术丛书  Nginx Lua开发实战

Web开发技术丛书 Nginx Lua开发实战PDF电子书下载

工业技术

  • 电子书积分:17 积分如何计算积分?
  • 作 者:李明江著
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2018
  • ISBN:9787111590293
  • 页数:566 页
图书介绍:本书围绕Nginx下Lua开发语言、Nginx核心工作机制、Nginx配置方法、核心数据组件和配置及API指令进行详细讲解。本书主要分五部分:第一部分介绍Nginx的基本操作,同时讲解了MySQL、PostgreSQL、Redis、Memcached、MongoDB、OpenResty的基本操作。第二部分详细讲解了Lua脚本语言和Lua通用库。第三部分讲解了在Nginx开发中经常使用到的一些技术,如:JSON数据交换格式、nginx.conf配置方法和配置指令;还讲解了Nginx下Lua开发的实现机制。第四部分详细介绍了常用Lua库和数据库等组件的使用方法,包括:Redis、MySQL、Memcached、PostgreSQL、MongoDB、Bit、lfs、restry.http、lcurl、FFI、cjson、Template、WebSocket。第五部分详细介绍了ngx_lua的配置指令和ngx_lua API,目的是帮助读者在工作中快速检索配置指令和API。
《Web开发技术丛书 Nginx Lua开发实战》目录

第一部分 Nginx操作基础 2

第1章 Nginx高效服务器 2

1.1 Nginx的特点 2

1.2 Nginx的安装 3

1.3 configure命令参数 7

1.4小结 12

第2章 数据库的基本操作 13

2.1 Nginx应用中的数据库 13

2.2 MySQL关系型数据库 15

2.2.1 yum安装方法 16

2.2.2使用mysql测试服务 18

2.2.3 MySQL文件分布 19

2.2.4数据库操作 19

2.3 Redis内存数据库 22

2.3.1 Redis安装 22

2.3.2启动Redis服务 23

2.3.3 Redis配置 23

2.3.4参数说明 26

2.3.5数据类型 29

2.4 PostgreSQL关系型数据库 31

2.5 Memcached内存数据库 33

2.5.1 Memcached安装 34

2.5.2连接编辑 34

2.5.3管理Memcached服务 35

2.5.4 Memcached命令 37

2.6 MongoDB分布式NoSQL数据库 42

2.6.1 MongoDB安装 43

2.6.2 mongod.conf配置说明 45

2.7小结 48

第3章 OpenResty 49

3.1 OpenResty:概述 49

3.2 OpenResty的组成 50

3.3 OpenResty的安装 52

3.4 Nginx多实例 54

3.5小结 54

第4章 Nginx核心技术 55

4.1 Nginx设计目标 55

4.2 Nginx架构 57

4.2.1事件驱动 57

4.2.2异步多阶段处理 59

4.2.3模块化设计 61

4.2.4管理进程、工作进程设计 63

4.2.5内存池 65

4.2.6连接池 66

4.2.7时间缓存 66

4.2.8延迟关闭 67

4.2.9跨平台 67

4.2.10 HTTP模块管道过滤模式 67

4.2.11 keepalive 68

4.2.12 pipeline 69

4.3小结 69

第5章 Nginx的工作流程 70

5.1 Nginx的启动流程 70

5.2管理进程的工作流程 72

5.3工作进程的工作流程 75

5.4配置加载流程 76

5.5 HTTP框架初始化流程 79

5.6 HTTP模块调用流程 81

5.7 HTTP请求处理流程 82

5.8小结 83

第二部分 Lua脚本语言 86

第6章 Lua教程 86

6.1 Lua基础 86

6.1.1 Lua的特性 86

6.1.2 Lua的应用场景 87

6.1.3安装Lua环境 87

6.2 Lua基本语法 88

6.2.1第一个Lua程序 88

6.2.2注释 89

6.2.3标识符 90

6.2.4关键词 90

6.2.5全局变量 90

6.3 Lua的数据类型 90

6.4 Lua变量 96

6.4.1赋值语句 96

6.4.2索引 97

6.5 Lua循环 98

6.6 Lua流程控制 98

6.7 Lua函数 99

6.7.1函数的定义 99

6.7.2多返回值 100

6.7.3可变参数 101

6.8 Lua运算符 101

6.8.1算术运算符 102

6.8.2关系运算符 102

6.8.3逻辑运算符 103

6.8.4其他运算符 104

6.8.5运算符的优先级 105

6.9 Lua字符串 106

6.10 Lua数组 107

6.10.1一维数组 107

6.10.2多维数组 108

6.11 Lua迭代器 109

6.11.1泛型for迭代器 109

6.11.2无状态的迭代器 110

6.11.3多状态的迭代器 111

6.12 Lua表 112

6.13 Lua模块与包 113

6.13.1 require函数 114

6.13.2加载机制 115

6.13.3 C包 115

6.14 Lua元表 116

6.14.1 index元方法 117

6.14.2 newindex元方法 118

6.14.3为表添加运算符 119

6.14.4 call元方法 119

6.14.5 tostring元方法 120

6.15 Lua协同程序 121

6.15.1基本语法 121

6.15.2生产者-消费者问题 124

6.16 Lua错误处理 125

6.16.1语法错误 125

6.16.2运行错误 125

6.16.3错误处理 126

6.16.4 error函数 126

6.16.5 pcall、xpcall、debug 127

6.17 Lua调试 128

6.18 Lua垃圾回收 130

6.19 Lua面向对象 131

6.19.1 Lua中面向对象 132

6.19.2 Lua继承 134

6.20 Lua数据库访问 136

6.21小结 137

第7章 Lua通用库 138

7.1字符串库 138

7.2表库 141

7.3文件I/O库 143

7.3.1简单模式 144

7.3.2完全模式 145

7.3.3其他方法 146

7.4数学库 147

7.5操作系统库 150

7.6小结 151

第三部分 Nginx开发技术 154

第8章 JSON数据交换格式 154

8.1什么是JSON 154

8.2 JSON转换为JavaScript对象 155

8.3 JSON与XML的比较 155

8.4 JSON语法规则 156

8.5格式化 157

8.6小结 158

第9章 nginx.conf文件配置 159

9.1默认nginx.conf文件 159

9.2 nginx.conf示例 162

9.3全局配置与顶层配置块 166

9.3.1 main全局配置 166

9.3.2 events配置块 170

9.3.3 http服务器配置块 172

9.3.4 ngx_http_core_module变量 194

9.3.5 stream 195

9.4中文版nginx.conf 201

9.5小结 204

第10章 Nginx下Lua实现机制 206

10.1 ngx_lua原理 206

10.2 HTTP请求的处理阶段 209

10.3 ngx_lua的处理阶段 210

10.4 Lua阶段解析 212

10.4.1 init_by_lua 212

10.4.2 init_worker_by_lua 213

10.4.3 set_by_lua 214

10.4.4 rewrite_by_lua 216

10.4.5 access_by_lua 217

10.4.6 conten_by_lua 218

10.4.7 header_filter_by_lua 220

10.4.8 body_filter_by_lua 220

10.4.9 log_by_lua 220

10.4.10 balancer_by_lua_block 221

10.5小结 222

第四部分 Nginx Lua开发实战 224

第11章 Redis操作 224

11.1 Redis操作方法概述 224

11.2 HttpRedis访问方法 225

11.2.1示例 225

11.2.2 HttpRedis API 226

11.2.3 HttpRedis变量 228

11.3 HttpRedis2Module访问方法 229

11.3.1示例 229

11.3.2 nginx.conf配置 230

11.3.3常用指令 231

11.3.4技术点 234

11.3.5应答包解析 238

11.4 lua-resty-redis访问方法 239

11.4.1示例 239

11.4.2 API函数 240

11.4.3技术点 244

11.4.4问题列表 246

11.4.5限制 247

11.4.6安装 247

11.5小结 247

第12章 MySQL操作 248

12.1 lua-restty-mysql访问方式 248

12.1.1示例 248

12.1.2安装 250

12.1.3方法与函数 251

12.1.4多结果集返回示例 254

12.1.5其他注意事项 255

12.1.6限制 255

12.2 HttpDrizzleModule访问方式 255

12.2.1示例 256

12.2.2安装 257

12.2.3技术点 258

12.2.4配置指令 259

12.2.5变量 263

12.2.6输出格式 264

12.3 HttpDrizzleModule完整示例 265

12.4小结 272

第13章 Memcached操作 273

13.1 mem-nginx-module访问方式 273

13.1.1概述 273

13.1.2命令 276

13.1.3指令 279

13.1.4安装 281

13.1.5说明 281

13.1.6示例 282

13.2 lua-resty-memcached访问方式 285

13.2.1概述 285

13.2.2 API 286

13.2.3自动日志 291

13.2.4限制 291

13.3小结 291

第14章 PostgreSQL操作 292

14.1概述 292

14.2配置指令 293

14.3配置变量 295

14.4示例 296

14.5小结 298

第15章 MongoDB操作 299

15.1安装 299

15.2配置 299

15.3操作函数 300

15.3.1连接对象方法 300

15.3.2数据库对象方法 301

15.3.3列对象方法 301

15.4示例 302

15.5小结 303

第16章 bit库的使用 304

16.1示例 304

16.2安装 305

16.3函数 305

16.4说明 307

16.5小结 308

第17章 Ifs库的使用 309

17.1目录迭代示例 309

17.2安装 310

17.3 LuaFileSystem函数 310

17.4小结 312

第18章 resty.http库的使用 313

18.1安装 313

18.2概述 314

18.3函数 315

18.3.1连接类 315

18.3.2应答类 318

18.3.3代理类 319

18.3.4工具类 319

18.4小结 320

第19章 lcurl库的使用 321

19.1安装 321

19.1.1安装libcurl 321

19.1.2安装lcurl 322

19.2示例 322

19.3函数 324

19.3.1 httpform类 325

19.3.2 easy类 327

19.3.3 multi类 331

19.3.4 error类 333

19.3.5 share类 333

19.4常用变量 334

19.4.1字符串数组类选项 334

19.4.2字符串选项 334

19.4.3数值型选项 336

19.4.4布尔型选项 337

19.5完整示例 338

19.6 小结 340

第20章 FFI扩展C库 341

20.1示例 341

20.1.1调用外部C函数 341

20.1.2使用C结构体数据 342

20.2 FFI库的使用 344

20.2.1载入FFI库 344

20.2.2访问标准系统函数 344

20.2.3访问zlib压缩库 345

20.2.4为一个C类型定义元方法 346

20.2.5转换C语法 347

20.3 FFI API 348

20.3.1声明和访问外部符号 348

20.3.2创建cdata对象 349

20.3.3 C类型信息 349

20.3.4功能函数 350

20.3.5特定目标信息 351

20.3.6方法回调 351

20.3.7扩展标准库函数 351

20.4调用curl库的完整示例 352

20.5小结 352

第21章 cjson库的使用 353

21.1示例 353

21.2函数 354

21.3变量 358

21.4小结 358

第22章 lua-resty-template类的使用 359

22.1示例 359

22.2模板符号 360

22.2.1短转义符号 361

22.2.2上下文表中的复杂key 361

22.2.3 HTML转义 361

22.2.4保留的上下文key和评论 362

22.3安装 363

22.3.1 Nginx/OpenResty配置 363

22.3.2使用document_root 363

22.3.3使用template_root 364

22.3.4使用template_location 364

22.4 Lua API 364

22.5模板预编译 368

22.6模板助手 368

22.7用法示例 369

22.7.1引用模板 369

22.7.2 Layouts的views 370

22.7.3使用Blocks 371

22.7.4继承 373

22.7.5 Macros 374

22.7.6调用模板中的方法 375

22.7.7模板内嵌的Angular或其他标签/模板 376

22.7.8模板内嵌的Markdown 376

22.7.9 LSP 377

22.8 FAQ 378

22.9小结 379

第23章 WebSocket的使用 380

23.1示例 381

23.2安装 383

23.3 resty.websocket.server 383

23.4 resty.websocket.client 386

23.5 resty.websocket.protocol 389

23.6使用注意事项 390

23.7小结 390

第24章 TCP私有服务器实例 391

24.1协议 391

24.1.1协议总体要求 391

24.1.2包头定义 392

24.1.3协议命令 393

24.2 DDP系统架构 394

24.3 DDP服务实现 395

24.3.1 nginx.conf配置 395

24.3.2 init.lua 398

24.3.3 ddp.lua 399

24.3.4 DDP代码解析 405

24.3.5 Redis和MySQL的location 407

24.3.6管理页面REST操作 411

24.4小结 412

第25章 WebSocket接入服务器实战 413

25.1 nginx.conf内容 413

25.2 ws_svr.lua内容 421

25.3 update_alarts代码 436

25.4小结 438

第26章 Nginx应用简述 439

26.1简单系统 439

26.2读写分离系统 439

26.3引入缓存系统 440

26.4缓存主从系统 441

26.5小结 442

第五部分 开发手册 444

第27章 ngx_lua_module模块配置指令详解 444

27.1概述 444

27.2 Lua配置顺序 456

27.3配置指令 457

27.4小结 487

第28章 ngx_lua API详解 488

28.1概述 488

28.2 API与常量 491

28.3小结 565

返回顶部