Nginx 开发者文档翻译 - 介绍
由于我的一个Private Cloud FaaS(函数计算)项目 Navagraha 使用nginx作为实现Service Mesh和API Gateway的基础框架,需要对Nginx有深入的了解,因此在这里翻译Nginx官方文档,用于之后的开发提供辅助参考。
介绍
代码组织结构
- auto - 编译构建脚本
- src
- core - 基础类型和函数 - 包括string,array,log,pool等内容
- event - 核心事件类型
- modules - 事件通知模块,包括epoll、kqueue、select等内容
- http - 核心HTTP模块以及通用代码
- modules - 其他的HTTP模块
- v2 - HTTP/2
- mail - 邮件模块
- os - 特定平台代码
- unix
- win32
- stream - 数据流模块
头文件
在每个nginx源文件里,必然包含两个头文件 分别为
#include <ngx_config.h>
#include <ngx_core.h>
如果需要实现的是HTTP模块,则需要添加HTTP相关的头文件:
#include <ngx_http.h>
邮件模块则添加头文件:
#include <ngx_mail.h>
数据流模块需要添加头文件:
#include <ngx_stream.h>
整型类型
在通常开发nginx模块过程中,通常使用两种整型类型ngx_int_t
或者ngx_uint_t
,对应的指针类型为intptr_t
和uintptr_t
。
通用返回类型
在nginx模块中,很多函数使用通用的返回值类型:
- NGX_OK - 代表操作执行成功。
- NGX_ERROR - 代表操作执行失败。
- NGX_AGAIN - 代表操作未执行完毕;要求重新调用该函数。
- NGX_DECLINED - 代表操作被拒绝。
- NGX_BUSY - 代表资源不可用
- NGX_DONE - 代表操作执行完成或通知调用者继续执行其他操作。
- NGX_ABORT - 代表操作的执行被中断。
错误处理
调用宏定义ngx_errno
将返回最后一个系统错误代码。如果是POSIX平台的话,这个宏定义将返回errno
,如果是Windows平台的是返回GetLastError()
。ngx_socket_errno
是返回socket最后出现错误的错误码。如果要设置errno的错误码的话,可以使用ngx_set_errno(errno)
或者 ngx_set_socket_errno(errno)
。
使用ngx_errno的实例如下:
void
ngx_my_kill(ngx_pid_t pid, ngx_log_t *log, int signo)
{
ngx_err_t err;
if (kill(pid, signo) == -1) {
err = ngx_errno;
ngx_log_error(NGX_LOG_ALERT, log, err, "kill(%P, %d) failed", pid, signo);
if (err == NGX_ESRCH) {
return 2;
}
return 1;
}
return 0;
}
Nginx 开发者文档翻译 - 介绍的更多相关文章
- nginx 官方文档翻译
nginx(发音为"engine x")是一个由俄罗斯软件工程师Igor Sysoev编写的免费开源Web服务器.自2004年公开发布以来,nginx专注于高性能,高并发性和低内存 ...
- Nginx基础知识介绍
Nginx基础知识介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Nginx概述 Nginx是免费的.开源的.高性能的HTTP和正向/反向代理服务器.邮件代理服务器.以及T ...
- Nginx负载均衡介绍
Nginx真心牛逼 nginx不单可以作为强大的web服务器,也可以作为一个反向代理服务器,而且nginx还可以按照调度规则实现动态.静态页面的分离,可以按照轮询.ip哈希.URL哈希.权重等多种方式 ...
- 3.Nginx常用功能介绍
Nginx常用功能介绍 Nginx反向代理应用实例 反向代理(Reverse Proxy)方式是指通过代理服务器来接受Internet上的连接请求,然后将请求转发给内部网络上的服务器,并且从内部网络服 ...
- Nginx之基本介绍(一)
这是一篇介绍Nginx基本信息和配置文件详情的文章,适合入门者,如果你想深入了解Nginx请绕道 什么是Nginx? Nginx是轻量级,高性能,跨平台的web服务器 Nginx的特点 更快 单个请求 ...
- 《基于Nginx的中间件架构》学习笔记---4.nginx编译参数详细介绍
通过nginx -V查看编译时参数: 在nginx安装目录下,通过./configure --help,查看对应版本ngnix编译时支持的所有参数: Nginx编译参数详细介绍: --help 显示本 ...
- nginx 集群介绍
nginx 集群介绍 完成一次请求的步骤 1)用户发起请求 2)服务器接受请求 3)服务器处理请求(压力最大) 4)服务器响应请求 缺点:单点故障 单台服务器资源有限 单台服务器处理耗时长 ·1)部署 ...
- Nginx服务配置文件介绍
LNMP架构应用实战——Nginx服务配置文件介绍 nginx的配置文件比较简单,但功能相当强大,可以自由灵活的进行相关配置,因此,还是了解下其配置文件的一此信息 1.Nginx服务目录结构介绍 安装 ...
- nginx的负载介绍
指定上游服务器的upstream与server指令 指令介绍 Syntax: upstream name { ... } Default: — Context: http Syntax: server ...
随机推荐
- 分治 FFT学习笔记
先给一道luogu板子题:P4721 [模板]分治 FFT 今天模拟有道题的部分分做法是分治fft,于是就学了一下.感觉不是很难,国赛上如果推出式子的话应该能写出来. 分治fft用来解决这么一个式子\ ...
- dashucoding记录2019.6.7
购买阿里云ECS主机 购买域名 申请备案 环境配置 安装wordpress 域名解析 在"产品与服务"中选择云服务器ECS 购买完域名之后建议去实名认证 域名购买链接:http:/ ...
- 视觉SLAM十四讲(三)——三维空间刚体运动(下)
理论部分请看 :三维空间刚体运动 一.Eigen的使用 首先安装 Eigen: sudo apt-get install libeigen3-dev 一般都安装在 /usr/include/eigen ...
- RESOURCE SUMMARY
I dont know where to start so searched the net and get a lot of free videos, my plan is to watch the ...
- php cookie 操作
创建 cookie <?php setcookie(); ?> 取回 Cookie 的值 <?php // Print a cookie echo $_COOKIE["us ...
- JavaScript--自定义事件Event
在开发过程中,js原生事件不足以满意开发需求,需要开发者自定义事件. 一.Event Event()构造函数创建一个新的Event. event = new Event(typeArg,eventIn ...
- Effective Java 3
<Effective Java>作者是美国的Joshua Bloch,连Gosling都说需要看的书,讨论的是更深层次的Java开发技术,适合于有一定Java基础的人看. 这是一本分享经验 ...
- 2018-2019-2 网络对抗技术 20165231 Exp9 Web安全基础
实验内容 本实践的目标理解常用网络攻击技术的基本原理,做不少于7个题目,共3.5分.包括(SQL,XSS,CSRF).Webgoat实践下相关实验. 实验过程 WebGoat: Webgoat是OWA ...
- html 与 xml 的区别与联系
[引言] 前一阵子刚刚学习了html(HyperText Markup Language),最近又接触了xml(Extensible Markup Language),它们之间有什么联系和区别呢?现在 ...
- 22Flutter中的常见的按钮组件 以及自定义按钮组件
/* Flutter中的常见的按钮组件 以及自定义按钮组件 一.Flutter中的按钮组件介绍 Flutter里有很多的Button组件,常见的按钮组件有:RaisedButton/FlatButto ...