静态Web服务器的主要功能由ngx_http_core_module模块(HTTP框架的主要成员)实现。当然,一个完整的静态Web服务器还有许多功能是由其他的HTTP模块实现的。本章主要讨论如何配置一个包含基本功能的静态Web服务器,文中会完整的说明ngx_http_core_module模块提供的配置项及变量的用法,但不会过多的说明其他HTTP模块的配置项。

Read More

Lambda表达式,有时候也被称为lambda函数(lambda function)或直接被简称为lambda,其是一种定义与使用匿名函数对象的简化方式。当我们需要向一个算法函数的某个参数传递一个operation的时候,lambda表达式就十分的方便。本章我们会详细介绍一下lambda。

Read More

在前面相关章节,我们知道nginx定义了ngx_connection_t数据结构来表示连接,这种连接通常表示由客户端主动发起、Nginx服务器被动接收的TCP连接(当然UDP连接也会用该结构来表示),称为被动连接。还有一类连接,在某些请求的处理过程中,Nginx会试图主动向其他上游服务器建立连接,并以此连接与上游服务器进行通信,Nginx定义ngx_peer_connection_t结构来表示,这类可以称为主动连接。本质上来说,主动连接是以ngx_connection_t结构体为基础实现的。

Read More

在前面相关章节,我们知道nginx定义了ngx_connection_t数据结构来表示连接,这种连接通常表示由客户端主动发起、Nginx服务器被动接收的TCP连接(当然UDP连接也会用该结构来表示),称为被动连接。还有一类连接,在某些请求的处理过程中,Nginx会试图主动向其他上游服务器建立连接,并以此连接与上游服务器进行通信,Nginx定义ngx_peer_connection_t结构来表示,这类可以称为主动连接。本质上来说,主动连接是以ngx_connection_t结构体为基础实现的。

Read More

通过我们知道ngx_event_core_module模块的init_process函数ngx_event_process_init()会为每个监听套接字的读事件注册处理函数ngx_event_accept(TCP)或者ngx_event_recvmsg(UDP),这里我们就来讲述一下nginx event acceptde的相关实现。

Read More

nginx中很多地方都需要用到时间戳信息,但是如果每一次都直接调用系统函数来获取,虽然可以保证时间的精确性,但是却会严重降低系统的性能。考虑到Nginx中很多地方用到的时间戳并不需要十分精确,从系统性能方面考虑,nginx采用缓存时间戳的方法来处理。

Read More