自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

huzilinitachi的专栏

blog of jerrylining

  • 博客(28)
  • 收藏
  • 关注

原创 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 1062

原创 聊一聊nginx ngx_http_proxy_module模块

        什么是代理?代理是作为中间层,作用于上下游两端。将下游的“请求”转移提交到上游,将上游的“响应”提交给下游。代理不仅在设计模式等程序设计中有比较广泛的使用,同时在大型的系统工程中使用也比较广泛,在web服务器领域,代理出现的频率也是很高的。        web服务中的代理有正向代理和反向代理两种,在大型的web服务中,反向代理是一种非常常用的技术,使用反向代理技能起到转发请求的作...

2018-04-24 13:27:55 4826 1

原创 nginx 定时器实现详解

  nginx定时器算是nginx一个重要的功能,nginx的定时器除了实现更新时间的功能之外,还提供了设置处理定时器的功能。而定时器的功能,在nginx中使用非常广泛。nginx定时器的实现原理    nginx定时器的实现位于event/ngx_event_timer文件中,在nginx worker的无间断loop中不断对取出定时器,并对其相关的事件进行处理。这里的事件包含了普通的更新...

2018-03-23 15:28:10 2432

原创 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 13880 1

原创 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 6516 1

原创 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 24351 1

原创 nginx upstream模块详解(基础结构篇)

nginx upstream模块对于nginx 最为代理服务器提供了基础功能 结合upstream功能 nginx能对代理进行各种处理nginx upstream基础数据结构typedef struct {    ngx_uint_t                       status;  //http状态码    ngx_msec_t                     respons...

2018-03-13 23:37:45 13269

原创 lua脚本加载解析机制

blog的源码参考来自于lua5.3.4lua字节指令处理脚本指令处理过程一般分为 加载脚本、解析脚本、生成虚拟机能处理的指令、根据生成的指令执行相应的功能。lua虚拟机支持.lua脚本文件加载解析以及lua脚本字符串的解析处理。lua字节码指令加载解析处理的时序如下图lua加载脚本lua在API接口层面提供了两种加载脚本的方式:luaL_loadbufferx加载lua脚本字符串,lu...

2018-10-14 16:42:18 7065

原创 lua虚拟机的整体结构

lua虚拟机的实现(虚拟机的整体结构)文章目录lua虚拟机的实现(虚拟机的整体结构)1.文本加载器2.文本解析器表达式局部变量跳转指令(goto或者label语句)动态的结构lua函数3.字节码解释器4.gc功能支持5.运行时环境支持1.文本加载器文本加载器包含加载脚本及脚本语义解析的功能,lua的文本加载器由lua lexstate进行处理。lua语法支持语义关键字为:and, brea...

2018-10-10 08:50:08 1254

原创 一致性协议Raft协议论文

寻找一种易于理解的一致性算法(扩展版)摘要Raft 是一种为了管理复制日志的一致性算法。它提供了和 Paxos 算法相同的功能和性能,但是它的算法结构和 Paxos 不同,使得 Raft 算法更加容易理解并且更容易构建实际的系统。为了提升可理解性,Raft 将一致性算法分解成了几个关键模块,例如领导人选举、日志复制和安全性。同时它通过实施一个更强的一致性来减少需要考虑的状态的数量。从一...

2018-06-21 15:23:54 399

原创 openssl之x509

x509 v3证书结构version number       //版本号serial number          //序列号signature algorithm ID      //签名算法idissuer name                      //发行者名称validity period                  //有效时间    not before      ...

2018-05-17 13:22:19 1361

原创 openssl之SSL/TLS 处理流程

TLS(Transport Layer Security) SSL(Secure Sockets Layer) 安全套接层        TLS协议是SSL协议的进化版,SSL协议提供的安全通道,具有以下三个特性1.机密性 SSL协议提供使用秘钥加密通信数据2.可靠性 服务器和客户端均会被认证,客户的认证是可选的3.SSL协议会对传送的数据进行完整性的检查SSL会话状态 会话(session)  ...

2018-05-10 11:04:24 3589

原创 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 13076

转载 meltdown和spectre的论文翻译

http://www.wowotech.net/basic_subject/meltdown.html

2018-04-18 16:10:17 575

原创 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 2559

原创 nginx http处理(postpone延迟处理过滤器)

        ngx_http_postpone_filter_module 用于处理延时的http请求(主要是子请求配置的)。postpone过滤器发生的时间点在处理响应包体时,这也是这个模块名称的由来。延时处理过滤功能和子请求之间的联系在点击打开链接子请求的说明里。        postpone的处理流程也比较简单:先配置top_body_filter处理函数指针,然后再通过配置的函数处理...

2018-04-17 16:59:04 2240

原创 nginx 处理http(发送http响应头数据篇 ----- ngx_http_header_filter_module模块处理)

http状态行 响应头Server //响应server名Date //响应头日期Content-Length //内容长度Content-Encoding //内容编...

2018-04-16 15:36:06 4751

原创 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

原创 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 3135

原创 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

原创 常用事件模型总结

事件模型一般有select、poll、 eventport 、dev/poll、epoll、kqueue这几种。以下对这几种事件模型逐个作原理讲解。 1.select模型  select通过select系统调用监视多个文件描述符集合,select调用返回后,集合中的文件描述符会被内核进行标志位的修改,进程可以获得这些文件描述符从而进行后续的读写操作。select几乎在所有的操作系统平台上都支持...

2018-04-02 18:31:12 932

原创 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 4584

原创 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 4816

原创 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 957

原创 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 2118

原创 nginx针对大文件缓存改造设计一(分块缓存及索引设计)

目录1.nginx原生web缓存处理2.nginx原生web缓存缺陷3.nginx缓存改造思路nginx原生web缓存处理        nginx缓存索引及配置信息存在于        struct  ngx_http_file_cache_s {            ngx_http_file_cache_sh_t   *sh;   //共享内存(主要保存缓存索引信息)           ...

2018-03-13 13:52:36 1756

原创 快速排序递归及非递归实现

快速排序算法基于冒泡排序进行了改进,冒泡排序的效率为n^2,快速排序由于使用了分而治之的思想,将算法效率提高到了nlogn,常规实现快排的方式是递归实现,在实际的应用中,如果要进行排序的数据量比较大,使用递归的方式会出现问题,因此可以用非递归的方式来实现。

2015-04-04 19:29:19 295

原创 sqart平方根计算的两种方法实现(累加逼近和二分法)

sqart函数是c/c++数学计算的一个changong

2014-09-14 21:30:35 8328

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除