web
文章平均质量分 67
huzilinitachi
这个作者很懒,什么都没留下…
展开
-
nginx upstream模块详解(处理流程篇一 upstream处理)
upstream 是nginx作为代理及缓存的核心结构 并且请求上游 发送至下游都能由相关联的模块进行干预处理upstream 模块流程处理如下创建upstreamngx_int_tngx_http_upstream_create(ngx_http_request_t *r){ ngx_http_upstream_t *u; u = r->upstream; ...原创 2018-03-14 18:36:47 · 24361 阅读 · 1 评论 -
nginx 处理http(发送http响应头数据篇 ----- ngx_http_header_filter_module模块处理)
http状态行 响应头Server //响应server名Date //响应头日期Content-Length //内容长度Content-Encoding //内容编...原创 2018-04-16 15:36:06 · 4759 阅读 · 0 评论 -
常用事件模型总结
事件模型一般有select、poll、 eventport 、dev/poll、epoll、kqueue这几种。以下对这几种事件模型逐个作原理讲解。 1.select模型 select通过select系统调用监视多个文件描述符集合,select调用返回后,集合中的文件描述符会被内核进行标志位的修改,进程可以获得这些文件描述符从而进行后续的读写操作。select几乎在所有的操作系统平台上都支持...原创 2018-04-02 18:31:12 · 937 阅读 · 0 评论 -
nginx http处理(postpone延迟处理过滤器)
ngx_http_postpone_filter_module 用于处理延时的http请求(主要是子请求配置的)。postpone过滤器发生的时间点在处理响应包体时,这也是这个模块名称的由来。延时处理过滤功能和子请求之间的联系在点击打开链接子请求的说明里。 postpone的处理流程也比较简单:先配置top_body_filter处理函数指针,然后再通过配置的函数处理...原创 2018-04-17 16:59:04 · 2242 阅读 · 0 评论 -
nginx处理http(http变量篇)
nginx http变量定义struct ngx_http_variable_s { ngx_str_t name; //变量名 ngx_http_set_variable_pt set_handler; //设置变量函数 ngx_http_get_variable_pt get_handler; ...原创 2018-04-12 15:54:44 · 3136 阅读 · 0 评论 -
nginx http处理(write_filter响应数据发送过滤器)
作为处理相应数据过滤器,ngx_http_write_filter_module起到了收集响应数据(包含buffer缓冲数据及本地文件 本地文件包含实际的静态文件及缓存文件)、使用定时器设置响应限速延时的功能。 ngx_http_write_filter_module也是使用top_body_filter来挂载在body_filter链来处理的,不过write_fil...原创 2018-04-18 15:38:59 · 2560 阅读 · 0 评论 -
nignx http处理(http头缓存控制篇)
设置http头处理结构typedef struct { ngx_str_t name; //头部键值名称 ngx_uint_t offset; //在结构体中的偏移量 ngx_http_set_header_pt handler; //头部设置处理函数指针} ...原创 2018-04-13 22:26:23 · 790 阅读 · 0 评论 -
nginx ssl模块使用详解
nginx 针对https提供ssl/tls配置功能的支持,这些功能由openssl库提供,除了原生的nginx模块能对https提供支持之外,openresty也同样在nginx原生的基础上 提供了lua脚本层面对https进行配置与处理的功能。 nginx openssl模块在ngx_http_ssl_module实现,实际与openssl进行交互的模块还是在ng...原创 2018-05-03 17:44:26 · 13079 阅读 · 0 评论 -
http2.0入门基础
HTTP 2.0协议http2.0升级方面1.改进http传输性能,实现低延迟和高吞吐量;同时满足http语义的向下兼容。2.相对http1.1,满足大多数情况下用户的感知时延有实质、可量度的改进3.解决http的 “队首阻塞”问题4.并行操作不需要与服务器建立多个连接,改善tcp的利用率5.保持对http1.1语义的兼容6.规定http2.0与http1.x之间的...原创 2018-07-10 11:55:11 · 1064 阅读 · 0 评论 -
nginx处理http(http处理结构篇)
http头部结构定义头部处理函数指针定义/*@param r http请求结构@param h http头部的hash表@param offset 位于结构体中的偏移量*/typedef ngx_int_t (*ngx_http_header_handler_pt)(ngx_http_request_t *r, ngx_table_elt_t *h, ngx_uint...原创 2018-04-09 15:24:30 · 483 阅读 · 0 评论 -
nginx 负载均衡(普通hash和一致性hash负载均衡的实现)
哈希负载均衡原理 ngx_http_upstream_hash_module支持普通的hash及一致性hash两种负载均衡算法,默认的是普通的hash来进行负载均衡。 nginx 普通的hash算法支持配置http变量值作为hash值计算的key,通过hash计算得出的hash值和总权重的余数作为挑选server的依据;nginx的一致性hash(chash)算法则要复杂一些。这里会对...原创 2018-03-22 10:40:27 · 13888 阅读 · 1 评论 -
nginx upstream模块详解(处理流程篇二 upstream与event_pipe交互)
ngx_event_pipe 提供了upstream对上游服务器返回包体数据 同时能做将包体数据发送请求端 ngx_event_pipe具体的结构在点击打开链接ngx_event_pipe函数负责在upstream包体数据处理过程中读取上游服务器包体数据 并且在处理上游包体数据的过程中 发送到请求端 这种处理流程经过测试验证 的确如此。提供给upstream模块服务的函数只有ngx_event_p...原创 2018-03-15 12:13:07 · 2119 阅读 · 0 评论 -
nginx upstream ip-hash负载均衡的实现(请求IP hash)
nginx 请求ip hash负载均衡 ip hash简单的原理就是根据请求端的IP来生成跟IP信息相关的hash值;对于不同的请求端,由于请求IP不会相同,因此生成的hash值也会不同。 以下是ngx_http_upstream_ip_hash_module的主要结构。typedef struct { /* the round robin data must be f...原创 2018-03-23 11:19:22 · 4817 阅读 · 0 评论 -
nginx upstream 轮询负载均衡
nginx upstream模块基础负载均衡功能 轮询 (round_robin)nginx ngx_http_upstream_rr_peer_s结构说明struct ngx_http_upstream_rr_peer_s { struct sockaddr *sockaddr; //上游服务器socket地址 socklen_t ...原创 2018-03-19 18:23:19 · 958 阅读 · 0 评论 -
nginx 定时器实现详解
nginx定时器算是nginx一个重要的功能,nginx的定时器除了实现更新时间的功能之外,还提供了设置处理定时器的功能。而定时器的功能,在nginx中使用非常广泛。nginx定时器的实现原理 nginx定时器的实现位于event/ngx_event_timer文件中,在nginx worker的无间断loop中不断对取出定时器,并对其相关的事件进行处理。这里的事件包含了普通的更新...原创 2018-03-23 15:28:10 · 2434 阅读 · 0 评论 -
nginx subrequest(子请求) 原理及使用
nginx subrequest主要有以下几种类型#define NGX_HTTP_SUBREQUEST_IN_MEMORY 2 //请求在内存中执行#define NGX_HTTP_SUBREQUEST_WAITED 4 //阻塞延后处理#define NGX_HTTP_SUBREQUEST_CLONE 8 //完全拷贝主请求的...原创 2018-03-20 12:18:08 · 6524 阅读 · 1 评论 -
nginx限制请求数(ngx_http_limit_req_module) 实现详解
nginx ngx_http_limit_req_module可以实现限制请求IP单位时间内的请求次数的作用。限制请求数能一定程度上降低nginx以及nginx作为代理时对恶意的请求访问压力。同时,对于非恶意的高频率请求,一定程度上降低了nginx或者后端服务器的负载。 nginx为了实现对请求IP进行请求限制的功能,需要能做到对请求IP已经对应时间段的请求次数进行保存及高效的查找判断...原创 2018-03-26 14:42:10 · 4591 阅读 · 0 评论