nginx开发
zhang_dawei666
这个作者很懒,什么都没留下…
展开
-
一个nginx C++ hello_world http module
写一个nginx C++ hello_world http module 背景由于需要开发一个nginx C++ http module,因此写了一个demo。nginx是C实现的,如果需要添加C++模块,则需要修改configure后的Makefile文件。实现思路:C++ module使用g++编译器,nginx源码使用C编译器,最后用g++链接生成nginx可执行文件。C原创 2017-04-15 10:12:18 · 4122 阅读 · 0 评论 -
调试神器之strace
调试神器之strace概述 strace是一个有用的诊断,调试工具。通过追踪甚至普通的程序,可以了解到一个系统和系统调用的很多事情。被跟踪中的每一行都包含系统调用名称,后跟括号中的参数及其返回值。每个系统调用的名称,参数及其返回值都打印在标准错误或用-o选项指定的文件上。strace 常用参数说明接下来我列出常用的几个参数并举例说明,-c 计算每个系统调用的运行时间,调用和错误,并打出报告。...原创 2018-06-07 01:01:38 · 391 阅读 · 0 评论 -
多维数组与指针
多维数组与指针数组相关的概念数组的声明int b[10];其中b是数组名并且是一个指针常量。该数组有10个整型。多维数组声明int b[10][3];其中b是一个二维数组名并且是一个指针常量,表示10个数组且每个数组有三个整型数。 下标引用int b[10]; *(b+3) 等同于 b[3] 即访问数组的第三个元素。 多维数组访问元素以int a[3][4] 为例,如下图所示: ...原创 2018-03-26 21:16:52 · 171 阅读 · 0 评论 -
测试redis EXPIRE设置过期时间并读取数据
测试redis EXPIRE设置过期时间命令概述本例子的测试场景是这样的:设置一条数据的过期时间,待数据过期后再获取redisReply 结果中的数据。测试例子:#include <stdio.h>#include <stdlib.h>#include <string.h>#include <hiredis.h>int main(int argc, ...原创 2018-03-16 16:35:07 · 3283 阅读 · 1 评论 -
upstream访问第三方服务
upstream访问第三方服务 upstream与subrequest机制upstream说明 upstream被定义为访问上游服务器。它把Nginx定义为代理服务器,⾸要功能是透传,其次才是以TCP获取第三⽅服务器的内容。subrequest说明 subrequest将会为客户请求创建⼦请求。因为异步⽆阻塞程序的开发过于复杂,所以HTTP框架提供了这种原创 2018-01-14 17:32:15 · 632 阅读 · 0 评论 -
查看nginx安装项
nginx安装 一、背景 安装nginx的时候想知道nginx的所有安装选项。 二、查看所有安装选项方法 在解压后的源码包中运行 ./configure --help 。 三、测试安装选项 --with-cpp_test_module 由于我想写C+原创 2017-03-31 22:36:01 · 403 阅读 · 0 评论 -
解决open()failed (13: Permission denied) while reading upstream的问题
解决open()failed (13: Permission denied) while reading upstream的问题前言 为了提高Nginx的处理能力,我们会配置Nginx配置文件使Nginx启动多个work进程。例如: #user root root; worker_processes 8; worker_cpu_affinit原创 2017-11-29 10:39:43 · 18362 阅读 · 2 评论 -
Nginx高级数据结构总结之 ngx_queue_t 双向链表
Nginx高级数据结构总结之 ngx_queue_t 双向链表 一、前言在Nginx的基础上开发新的功能模块时,有些功能使用Nginx的高级数据结构会起到事半功倍的效果。链表作为顺序容器的优势在于,它可以高效地执行插入、删除、 合并等操作,在移动链表中的元素时只需要修改指针的指向,因此,它很适合频繁修改容器的场合。 二、ngx_queue原创 2017-08-31 23:23:49 · 491 阅读 · 0 评论 -
Nginx 日志配置(一)
Nginx 日志配置(一) 一、前言 开发复杂的Nginx模块时,如何定位代码上的问题是必须考虑的前提条件,此时输出各种日志就显得很关键了。 二、记录日志的方法2.1)配置nginx.conf文件 error_log logs/error.log debug ;格式说明: logs/error.lo原创 2017-08-31 23:35:17 · 613 阅读 · 0 评论 -
Nginx高级数据结构总结之ngx_array_t 动态数组
Nginx高级数据结构总结之ngx_array_t 动态数组 一、 前言在Nginx共享内存中,我们有使用动态数组来存储共享数据。动态数组ngx_array_t 有以下三个优点:1) 访问速度快2) 允许元素的不确定性3) 负责元素 二、 接口说明以上截图出自《深入理解Nginx》一、 测试例子 typedef s原创 2017-08-31 23:28:36 · 492 阅读 · 0 评论 -
Nginx高级数据结构总结(一)
nginx高级数据结构 一、前言 最近在做Nginx模块开发,在开发的过程中遇到使用Nginx高级数据结构。为了方便以后的开发,因此我在这里总结一下Nginx常用的高级数据结构及特点。 二、Nginx高级数据结构总结 三、参考文献原创 2017-08-24 01:46:37 · 611 阅读 · 0 评论 -
解决nginx 集成openssl的异常
解决nginx 集成openssl的异常 背景 1、nginx 集成 openssl 报错。具体的报错信息如下: undefined reference to `crypt_r' error 解决方法 在configure 后添加原创 2017-07-26 19:29:22 · 2535 阅读 · 0 评论 -
在保证Nginx正常处理请求的情况下升级Nginx
在保证Nginx正常处理请求的情况下升级Nginx 前言 Nginx是一个功能强大的Web服务器,用于服务于世界上许多最受欢迎的站点。 在本博客中,我将演示如何在不丢失客户端连接的情况下升级Nginx可执行文件。 升级方法 Nginx通过在服务启动时生成主进程来工作。同时,主服务会启动一个或多个处...原创 2018-08-06 17:48:50 · 488 阅读 · 0 评论