购物车中还没有商品,赶紧选购吧!
条形条码:
Nginx完全开发指南(使用CC++JavaScrip
商品价格
降价通知
高级VIP可享超值优惠价 立即开通
市 场 价
累计评价0
/
累计销量0
手机购买
商品二维码
配送
至
服务
发货并提供售后服务。
可用积分
0
数量
库存   个
温馨提示
平台自营
5.00
商品评价 5
服务态度 5
发货速度 5

微信扫码查看移动端店铺

暂无联系方式
  • 商品详情
  • 规格参数
手机购买
商品二维码
加入购物车
价格:
数量:
库存   个

商品详情

商品名称:Nginx完全开发指南(使用CC++JavaScrip
商品编号 :641125248764
店铺:
重量:0.000千克
上架时间:2021-06-02 10:06:58
ISBN编号 :9787121364365
书名 :Nginx完全开发指南-使用C、C++、JavaScript和Lua,Nginx完全开发指南-使用C、C++、JavaScript和Lua
作者 :罗剑锋
出版社名称 :电子工业出版社
定价 :109.00元
开本 :16开
是否是套装 :否

更多参数>>

  • 商品名称: Nginx完全开发指南(使用CC++JavaScrip
  • 作者: 罗剑锋
  • 定价: 109.0
  • ISBN号: 9787121364365
  • 出版社: 电子工业出版社
  • 印次: 1
  • 开本: 16开
  • 页数: 602
  • 出版时间: 2019-05-01
  • 印刷时间: 2019-05-01
  • 版次: 1

Nginx是著名的Web服务器,性能优异,运行效率远超传统的Apache、Tomcat,广泛应用于国内外诸多顶级互联网公司。

Nginx的一个突出特点是其灵活优秀的模块化架构,可以在不修改核心的前提下增加任意功能,自2004年发布至今,已经拥有百余个官方及非官方的功能模块(如proxy、mysql、redis、rtmp、lua等),使得Nginx成长为了一个近乎“全能”的服务器软件。

Nginx功能强大,架构复杂,学习、维护和开发的门槛较高。为了帮助读者跨越这一障碍,本书深入**的Nginx源码(Stable 1.16.0),详细剖析了模块体系、动态插件、功能框架、内存分配、进程模型、事件驱动、线程池、TCP/UDP/HTTP处理等Nginx核心运行机制,在此基础上讲解如何使用C、C++、JavaScript、Lua等语言来增强扩展Nginx,让任何人都能够便捷、轻松地开发和定制Nginx,进而应用到自己的实际工作中,创造出更多的价值。

本书结构严谨、脉络清晰、论述精确、详略得当、图文并茂,值得广大软件开发工程师、系统运维工程师和编程爱好者拥有。

罗剑锋(网名chrono)

1996年就读于东北财经大学

1997年开始接触C/C++

1998年参加计算机软件专业技术资格和

水平考试,获高级程序员资质

2003年毕业于北京理工大学,获计算机

专业硕士学位

主要研究方向为C/C++、设计模式、

高性能网络服务器开发

业余爱好是阅读、欣赏音乐和旅游

第0章    导读
    0.1    于本书
    0.2    读者对象
    0.3    读者要求
    0.4    运行环境
    0.5    本书的结构
    0.6    如何阅读本书
    0.7    本书的源码
第1章    Nginx入门
    1.1    关于Nginx
        1.1.1    历史
        1.1.2    特点
        1.1.3    进程模型
        1.1.4    版本
    1.2    安装Nginx
        1.2.1    准备工作
        1.2.2    快速安装
        1.2.3    运行命令
        1.2.4    验证安装
        1.2.5    定制安装
    1.3    配置Nginx
        1.3.1    语法格式
        1.3.2    进程管理
        1.3.3    动态模块
        1.3.4    运行日志
        1.3.5    事件机制
    1.4    HTTP服务
        1.4.1    基本配置
        1.4.3    location配置
        1.4.4    file配置
    1.5    TCP/UDP服务
    1.6    反向代理
        1.6.1    上游集群
        1.6.2    负载均衡
        1.6.3    代理转发
    1.7    变量
    1.8    总结
第2章    Nginx开发准备
    2.1    源码结构
    2.2    源码特点
        2.2.1    代码风格
        2.2.2    代码优化
        2.2.3    面向对象思想
    2.3    头文件
    2.4    总结
第3章    Nginx基础设施
    3.1    常数
        3.1.1    环境信息
        3.1.2    版本信息
        3.1.3    错误码
    3.2    整数类型
        3.2.1    标准整数类型
        3.2.2    自用整数类型
        3.2.3    无效值
    3.3    内存池
        3.3.1    结构定义
        3.3.2    操作函数
        3.3.3    用法示例
    3.4    字符串
        3.4.1    结构定义
        3.4.2    操作函数
        3.4.3    用法示例
    3.5    时间
        3.5.1    结构定义
        3.5.2    操作函数
        3.5.3    用法示例
    3.6    日期
        3.6.1    结构定义
        3.6.2    操作函数
        3.6.3    用法示例
    3.7    运行日志
        3.7.1    结构定义
        3.7.2    操作函数
        3.7.3    用法示例
    3.8    摘要算法
        3.8.1    Times33
        3.8.2    CRC
        3.8.3    MurmurHash
        3.8.4    MD5
        3.8.5    SHA-1
    3.9    数据编码
        3.9.1    Base
        3.9.2    HTML/JSON
    3.10    总结
第4章    Nginx高级数据结构
    4.1    动态数组
        4.1.1    结构定义
        4.1.2    操作函数
        4.1.3    用法示例
    4.2    单向链表
        4.2.1    结构定义
        4.2.2    操作函数
        4.2.3    用法示例
    4.3    双端队列
        4.3.1    结构定义
        4.3.2    操作函数
        4.3.3    用法示例
    4.4    红黑树
        4.4.1    结构定义
        4.4.2    操作函数
        4.4.3    用法示例
    4.5    缓冲区
        4.5.1    结构定义
        4.5.2    操作函数
        4.5.3    用法示例
    4.6    数据块链
        4.6.1    结构定义
        4.6.2    操作函数
        4.6.3    用法示例
    4.7    总结
第5章    Nginx开发概述
    5.1    开发示例
        5.1.1    模块设计
        5.1.2    配置解析
        5.1.3    处理函数
        5.1.4    模块集成
        5.1.5    编译脚本
        5.1.6    测试验证
    5.2    开发流程
        5.2.1    设计
        5.2.2    开发
        5.2.3    编译
        5.2.4    测试验证
        5.2.5    调优
        5.2.6    流程图
    5.3    编译脚本
        5.3.1    运行机制
        5.3.2    脚本变量
        5.3.3    添加模块
        5.3.4    脚本格式
        5.3.5    旧式脚本
    5.4    总结
第6章    Nginx模块体系
    6.1    模块架构
        6.1.1    结构定义
        6.1.2    模块的签名
        6.1.3    模块的种类
        6.1.4    模块的函数指针表
        6.1.5    模块的类图
        6.1.6    模块的组织形式
        6.1.7    模块的静态加载
        6.1.8    模块的动态加载
    6.2    配置解析
        6.2.1    结构定义
        6.2.2    基本流程
        6.2.3    存储模型
        6.2.4    访问配置数据
        6.2.5    配置数据的位置
        6.2.6    配置数据的解析
        6.2.7    配置数据的合并
        6.2.8    配置指令的类型
    6.3    源码分析
        6.3.1    ngx_core_module
        6.3.2    ngx_errlog_module
    6.4    总结
第7章    Nginx功能框架
    7.1    框架简介
        7.1.1    模块分类
        7.1.2    处理流程
        7.1.3    请求的处理阶段
        7.1.4    请求结构体
        7.1.5    请求的环境数据
    7.2    处理引擎
        7.2.1    函数原型
        7.2.2    处理函数的存储方式
        7.2.3    内容处理函数
        7.2.4    引擎的数据结构
        7.2.5    引擎的初始化
        7.2.6    引擎的运行机制
        7.2.7    日志阶段的处理
    7.3    过滤引擎
        7.3.1    函数原型
        7.3.2    过滤函数链表
        7.3.3    过滤函数的顺序
        7.3.4    过滤链表的运行机制
        7.3.5    请求体过滤
    7.4    源码分析
        7.4.1    ngx_http_static_module
        7.4.2    ngx_http_not_modified_filter_module
    7.5    总结
第8章    Nginx请求处理
    8.1    状态码
    8.2    请求结构体
    8.3    请求行
        8.3.1    请求方法
        8.3.2    协议版本号
        8.3.3    资源标识符
    8.4    请求头
    8.5    请求体
        8.5.1    结构定义
        8.5.2    操作函数
    8.6    响应头
        8.6.1    结构定义
        8.6.2    操作函数
    8.7    响应体
    8.8    源码分析
        8.8.1    ngx_http_static_module
        8.8.2    ngx_http_not_modified_filter_module
    8.9    开发示例:content handler
        8.9.1    模块设计
        8.9.2    配置数据
        8.9.3    处理函数
        8.9.4    注册函数
        8.9.5    模块集成
        8.9.6    编译脚本
        8.9.7    测试验证
    8.10    开发示例:filter
        8.10.1    模块设计
        8.10.2    配置数据
        8.10.3    环境数据
        8.10.4    注册过滤函数
        8.10.5    过滤响应头
        8.10.6    过滤响应体
        8.10.7    模块集成
        8.10.8    编译脚本
        8.10.9    测试验证
    8.11    总结
第9章    Nginx请求转发
    9.1    框架简介
        9.1.1    工作原理
        9.1.2    请求结构体
        9.1.3    上游结构体
        9.1.4    上游配置参数
    9.2    请求转发
        9.2.1    回调函数
        9.2.2    初始化
        9.2.3    设置参数
        9.2.4    启动连接
        9.2.5    处理响应头
        9.2.6    处理响应体
    9.3    负载均衡
        9.3.1    结构定义
        9.3.2    初始化模块入口
        9.3.3    初始化地址列表
        9.3.4    初始化算法
        9.3.5    执行算法
    9.4    源码分析
        9.4.1    ngx_http_memcached_module
        9.4.2    ngx_http_upstream_ip_hash_module
    9.5    开发示例:upstream
        9.5.1    模块设计
        9.5.2    配置数据
        9.5.3    上行数据
        9.5.4    下行数据
        9.5.5    启动转发
        9.5.6    注册函数
        9.5.7    模块集成
        9.5.8    编译脚本
        9.5.9    测试验证
    9.6    开发示例:balance
        9.6.1    模块设计
        9.6.2    配置数据
        9.6.3    算法数据结构
        9.6.4    模块入口
        9.6.5    算法实现
        9.6.6    模块集成
        9.6.7    编译脚本
        9.6.8    测试验证
    9.7    总结
第10章    Nginx子请求
    10.1    框架简介
        10.1.1    工作原理
        10.1.2    请求结构体
        10.1.3    回调函数
        10.1.4    待处理请求链表
        10.1.5    子请求存储结构
    10.2    运行机制
        10.2.1    创建子请求
        10.2.2    处理引擎
        10.2.3    数据整理
    10.3    开发示例
        10.3.1    模块设计
        10.3.2    配置数据
        10.3.3    环境数据
        10.3.4    回调函数
        10.3.5    处理函数
        10.3.6    注册函数
        10.3.7    测试验证
    10.4    总结
第11章    Nginx变量
    11.1    结构定义
        11.1.1    变量
        11.1.2    复杂变量
        11.1.3    变量的存储
        11.1.4    请求结构体
    11.2    操作变量
        11.2.1    添加变量
        11.2.2    获取变量
        11.2.3    修改变量
        11.2.4    编译复杂变量
        11.2.5    获取复杂变量
    11.3    开发示例:变量
        11.3.1    模块设计
        11.3.2    定义变量
        11.3.3    添加变量
        11.3.4    获取变量
        11.3.5    测试验证
    11.4    开发示例:复杂变量
        11.4.1    模块设计
        11.4.2    定义复杂变量
        11.4.3    编译复杂变量
        11.4.4    获取复杂变量
        11.4.5    测试验证
    11.5    总结
第12章    Nginx内存管理机制
    12.1    基本系统调用
        12.1.1    malloc
        12.1.2    posix_memalign
        12.1.3    free
    12.2    块式内存池
        12.2.1    结构定义
        12.2.2    常量定义
        12.2.3    创建内存池
        12.2.4    分配内存
        12.2.5    分配大块内存
        12.2.6    分配小块内存
        12.2.7    释放内存
        12.2.8    清理机制
        12.2.9    清空内存池
        12.2.10    销毁内存池
    12.3    页式内存池
        12.3.1    结构定义
        12.3.2    常量定义
        12.3.3    初始化内存池
        12.3.4    分配内存
        12.3.5    分配大块内存
        12.3.6    分配小块内存
        12.3.7    释放内存
    12.4    总结
第13章    Nginx进程机制
    13.1    基本系统调用
        13.1.1    errno
        13.1.2    getrlimit
    13.2    进程系统调用
        13.2.1    getpid
        13.2.2    fork
        13.2.3    waitpid
    13.3    信号系统调用
        13.3.1    kill
        13.3.2    sigaction
        13.3.3    sigsuspend
    13.4    结构定义
        13.4.1    ngx_cycle_t
        13.4.2    ngx_core_conf_t
        13.4.3    ngx_process_t
    13.5    全局变量
        13.5.1    命令行相关
        13.5.2    操作系统相关
        13.5.3    进程功能相关
        13.5.4    信号功能相关
    13.6    启动过程
        13.6.1    基本流程
        13.6.2    解析命令行
        13.6.3    版本和帮助信息
        13.6.4    初始化cycle
        13.6.5    测试配置
        13.6.6    发送信号
        13.6.7    守护进程化
        13.6.8    启动工作进程
        13.6.9    流程图
    13.7    信号处理
        13.7.1    信号处理函数
        13.7.2    发送信号
        13.7.3    处理信号
    13.8    单进程模式
        13.8.1    single进程
        13.8.2    single进程流程图
    13.9    多进程模式
        13.9.1    产生子进程
        13.9.2    master进程
        13.9.3    master进程流程图
        13.9.4    worker进程
        13.9.5    worker进程流程图
    13.10    总结
第14章    Nginx进程间通信机制
    14.1    基本系统调用
        14.1.1    atomic
        14.1.2    sched_yield
        14.1.3    semaphore
        14.1.4    mmap
    14.2    共享内存(Ⅰ)
        14.2.1    结构定义
        14.2.2    创建共享内存
        14.2.3    使用共享内存
    14.3    自旋锁
        14.3.1    自旋锁定
        14.3.2    解除锁定
        14.3.3    使用自旋锁
    14.4    互斥锁
        14.4.1    结构定义
        14.4.2    创建互斥锁
        14.4.3    互斥锁定
        14.4.4    解除锁定
        14.4.5    销毁互斥锁
        14.4.6    使用互斥锁
    14.5    读写锁
        14.5.1    写锁定
        14.5.2    读锁定
        14.5.3    解除锁定
        14.5.4    降级锁定
        14.5.5    使用读写锁
    14.6    共享内存(Ⅱ)
        14.6.1    结构定义
        14.6.2    添加共享内存
        14.6.3    创建共享内存
        14.6.4    使用共享内存
    14.7    总结
第15章    Nginx事件机制
    15.1    基本系统调用
        15.1.1    errno
        15.1.2    ioctl
        15.1.3    setitimer
        15.1.4    gettimeofday
    15.2    socket系统调用
        15.2.1    socket
        15.2.2    bind
        15.2.3    listen
        15.2.4    accept
        15.2.5    connect
        15.2.6    recv
        15.2.7    send
        15.2.8    setsockopt
        15.2.9    close
        15.2.10    函数关系图
    15.3    epoll系统调用
        15.3.1    epoll_create
        15.3.2    epoll_ctl
        15.3.3    epoll_wait
        15.3.4    LT和ET
        15.3.5    函数关系图
    15.4    结构定义
        15.4.1    ngx_event_t
        15.4.2    ngx_connection_t
        15.4.3    ngx_listening_t
        15.4.4    ngx_cycle_t
        15.4.5    ngx_os_io_t
        15.4.6    ngx_event_actions_t
        15.4.7    ngx_posted_events
        15.4.8    关系图
    15.5    定时器
        15.5.1    红黑树
        15.5.2    操作函数
        15.5.3    超时处理
    15.6    模块体系
        15.6.1    函数指针表
        15.6.2    模块的组织形式
        15.6.3    核心配置
        15.6.4    epoll模块
    15.7    全局变量
        15.7.1    更新时间相关
        15.7.2    事件机制相关
        15.7.3    负载均衡相关
        15.7.4    统计相关
    15.8    进程初始化
        15.8.1    初始化函数
        15.8.2    基本参数初始化
        15.8.3    事件机制初始化
        15.8.4    连接池初始化
        15.8.5    监听端口初始化
        15.8.6    初始化流程图
    15.9    运行机制
        15.9.1    添加事件
        15.9.2    删除事件
        15.9.3    处理事件
        15.9.4    接受连接
        15.9.5    负载均衡
    15.10    避免阻塞
    15.11    总结
第16章    Nginx多线程机制
    16.1    eventfd系统调用
    16.2    pthread系统调用
    16.3    结构定义
        16.3.1    ngx_thread_task_t
        16.3.2    ngx_thread_pool_queue_t
        16.3.3    ngx_thread_pool_t
        16.3.4    结构关系图
    16.4    事件通知
        16.4.1    函数接口
        16.4.2    初始化
        16.4.3    发送通知
        16.4.4    处理通知
    16.5    运行机制
        16.5.1    完成任务队列
        16.5.2    创建线程池
        16.5.3    创建任务
        16.5.4    投递任务
        16.5.5    执行任务
        16.5.6    任务完成回调
        16.5.7    销毁线程池
    16.6    开发示例
        16.6.1    模块设计
        16.6.2    配置数据
        16.6.3    线程任务
        16.6.4    任务完成回调
        16.6.5    投递任务
        16.6.6    测试验证
    16.7    总结
第17章    Nginx Stream机制
    17.1    模块体系
        17.1.1    函数指针表
        17.1.2    基础模块
        17.1.3    核心模块
        17.1.4    结构关系图
        17.1.5    存储模型
    17.2    监听端口
        17.2.1    结构定义
        17.2.2    解析配置
        17.2.3    启动监听
    17.3    处理引擎
        17.3.1    阶段定义
        17.3.2    函数原型
        17.3.3    处理函数的存储方式
        17.3.4    引擎数据结构
        17.3.5    结构关系图
        17.3.6    引擎的初始化
    17.4    过滤引擎
        17.4.1    函数原型
        17.4.2    过滤函数链表
    17.5    运行机制
        17.5.1    会话结构体
        17.5.2    创建会话
        17.5.3    执行引擎
        17.5.4    通用阶段处理
        17.5.5    预读数据
        17.5.6    产生响应数据
        17.5.7    过滤数据
        17.5.8    结束会话
    17.6    开发示例
        17.6.1    discard协议
        17.6.2    time协议
        17.6.3    echo协议
    17.7    总结
第18章    Nginx HTTP机制
    18.1    结构定义
        18.1.1    ngx_http_state_e
        18.1.2    ngx_http_connection_t
        18.1.3    ngx_http_request_t
    18.2    初始化连接
        18.2.1    建立连接
        18.2.2    等待数据
        18.2.3    读取请求头
    18.3    执行引擎
        18.3.1    初始化引擎
        18.3.2    通用阶段
        18.3.3    改写阶段
        18.3.4    访问控制阶段
        18.3.5    内容产生阶段
    18.4    处理请求体
        18.4.1    丢弃缓冲区数据
        18.4.2    读取并丢弃数据
        18.4.3    读事件处理函数
        18.4.4    启动丢弃处理
    18.5    发送数据
        18.5.1    发送初始化
        18.5.2    事件处理函数
    18.6    结束请求
        18.6.1    释放请求资源
        18.6.2    检查引用计数结束请求
        18.6.3    检查状态结束请求
        18.6.4    综合处理结束请求
    18.7    总结
第19章    Nginx与设计模式
    19.1    设计模式简介
    19.2    框架级别的模式
    19.3    业务级别的模式
    19.4    代码级别的模式
    19.5    总结
第20章    Nginx C++开发
    20.1    语言简介
    20.2    开发准备
        20.2.1    程序库
        20.2.2    头文件
        20.2.3    编程范式
        20.2.4    实现原则
        20.2.5    源码组织
        20.2.6    编译脚本
    20.3    封装类
        20.3.1    基础设施
        20.3.2    高级数据结构
        20.3.3    功能框架
        20.3.4    请求处理
    20.4    开发示例:content handler
        20.4.1    配置信息类
        20.4.2    业务逻辑类
        20.4.3    模块集成类
        20.4.4    实现源文件
    20.5    开发示例:filter
        20.5.1    配置信息类
        20.5.2    环境数据类
        20.5.3    业务逻辑类
        20.5.4    模块集成类
        20.5.5    实现源文件
    20.6    总结
第21章    Nginx JavaScript开发
    21.1    语言简介
    21.2    模块简介
    21.3    开发准备
    21.4    指令简介
    21.5    功能接口
        21.5.1    运行日志
        21.5.2    变量
        21.5.3    请求处理
        21.5.4    子请求
        21.5.5    定时器
        21.5.6    流处理
    21.6    开发示例
        21.6.1    content handler
        21.6.2    subrequest
        21.6.3    A/B testing
    21.7    总结
第22章    Nginx Lua开发
    22.1    语言简介
    22.2    模块简介
        22.2.1    http_lua
        22.2.2    stream_lua
        22.2.3    lua-resty-lib
    22.3    开发准备
    22.4    指令简介
        22.4.1    配置指令
        22.4.2    功能指令
        22.4.3    指令关系图
    22.5    应用开发流程
    22.6    功能接口
        22.6.1    运行日志
        22.6.2    时间与日期
        22.6.3    变量
        22.6.4    正则表达式
        22.6.5    请求处理
        22.6.6    请求转发
        22.6.7    子请求
        22.6.8    定时器
        22.6.9    共享内存
    22.7    开发示例
        22.7.1    content handler
        22.7.2    filter
        22.7.3    upstream
        22.7.4    subrequest
        22.7.5    discard
        22.7.6    echo
    22.8    总结
第23章    Nginx调试与测试
    23.1    调试
        23.1.1    调试器
        23.1.2    调试断点
        23.1.3    调试日志
    23.2    功能测试
        23.2.1    测试套件
        23.2.2    测试用例
        23.2.3    运行测试
    23.3    性能测试
        23.3.1    ab
        23.3.2    http_load
        23.3.3    wrk
        23.3.4    Test::Nginx
    23.4    总结
第24章    Nginx性能分析
    24.1    简介
    24.2    火焰图
    24.3    分析工具
        24.3.1    使用方式
        24.3.2    处理数据
    24.4    动态追踪
        24.4.1    CPU分析
        24.4.2    I/O分析
        24.4.3    Memory分析
        24.4.4    观测工具
    24.5    总结
第25章    结束语
    25.1    本书的遗憾
    25.2    下一步
    25.3    临别赠言
附录A 推荐书目
附录B 字符串格式化
附录C 开发辅助工具

对比栏

1

您还可以继续添加

2

您还可以继续添加

3

您还可以继续添加

4

您还可以继续添加