上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 70 下一页
摘要: 在解析完 http 请求报文后, 需要发出响应报文, 那么ngx 框架 提供了那些通用接口呢?如果自己设计将所用的模块的响应接口合并起来 你会怎么设计呢?? 响应头过滤函数主要的用处就是处理HTTP响应的头,可以根据实际情况对于响应头进行修改或者添加删除。 响应头过滤函数先于响应体过滤函数,而且只调 阅读全文
posted @ 2020-08-16 17:31 codestacklinuxer 阅读(979) 评论(0) 推荐(0)
摘要: HTTP 处理数据包, 有的业务不需要,此时只需要将数据包文读取后丢弃, 但是ngx 为什么还要提供一个丢弃接口呢???解决了什么问题?? 对于HTTP模块而言,放弃接收包体就是简单地不处理包体了,可是对于HTTP框架而言,并不是不接收包体就可以的。因为对于客户端而言,通常会调用一些阻塞的发送方法来 阅读全文
posted @ 2020-08-16 16:55 codestacklinuxer 阅读(192) 评论(0) 推荐(0)
摘要: HTTP包体的长度有可能非常大,不同业务可能对包体读取 处理不相同, 比如waf, 也许会读取body内容或者只是读取很少的前几十字节。所以根据不同业务特性,对http body 数据包处理方式不同,nginx核心本身不会主动读取请求体,这个工作是交给请求处理阶段的模块处理,ngx 里面目前提供了接 阅读全文
posted @ 2020-08-16 13:09 codestacklinuxer 阅读(665) 评论(0) 推荐(0)
摘要: 在处理完http的头部信息后 然后在 处理request-body信息ngx_http_process_request ngx_http_process_request_headers(ngx_http_process_request_header)头部行解析完毕后调用函数ngx_http_proc 阅读全文
posted @ 2020-08-11 23:03 codestacklinuxer 阅读(394) 评论(0) 推荐(0)
摘要: 简要而说:accept 到连接后 根据fd 构建一个connection 由于是 http ; 重新封装为http-connection;同时设置fd的读回调; 回调函数根据是否是https/http 进行区别 ngx_http_init_connection(ngx_connection_t *c 阅读全文
posted @ 2020-08-10 21:27 codestacklinuxer 阅读(229) 评论(0) 推荐(0)
摘要: 首先看下 连接池的获取以及释放 ngx_connection_t * ngx_get_connection(ngx_socket_t s, ngx_log_t *log) //从连接池中获取一个ngx_connection_t { ngx_uint_t instance; ngx_event_t * 阅读全文
posted @ 2020-08-10 00:23 codestacklinuxer 阅读(138) 评论(0) 推荐(0)
摘要: 尝试获取锁,如果获取了锁,那么还要将当前监听端口全部注册到当前worker进程的epoll当中去 获取失败就需要确保此时ls-fd 没有被 epoll 监听 ngx_int_t ngx_trylock_accept_mutex(ngx_cycle_t *cycle) { if (ngx_shmtx_ 阅读全文
posted @ 2020-08-09 23:41 codestacklinuxer 阅读(241) 评论(0) 推荐(0)
摘要: static void ngx_cache_manager_process_cycle(ngx_cycle_t *cycle, void *data) { /* * Set correct process type since closing listening Unix domain socket 阅读全文
posted @ 2020-08-09 18:41 codestacklinuxer 阅读(268) 评论(0) 推荐(0)
摘要: 网络设备一次能够传输的最大数据量就是MTU,即IP传递给网络设备的每一个数据包不能超过MTU个字节,IP层的分段和重组功能就是为了适配网络设备的MTU而存在的。从理论上来讲,TCP可以不关心MTU的限定,只需要按照自己的意愿随意的将数据包丢给IP,是否需要分段可以由IP透明的处理,但是由于TCP是可 阅读全文
posted @ 2020-08-07 21:06 codestacklinuxer 阅读(1348) 评论(0) 推荐(1)
摘要: http://www.cnhalo.net/2016/09/13/linux-gro/ GRO(Generic receive offload): 在napi poll里把小包封装成大包再递交给协议栈 LRO: GRO的硬件实现(通过网卡的RSC功能) http://lwn.net/Articles 阅读全文
posted @ 2020-08-07 21:05 codestacklinuxer 阅读(578) 评论(0) 推荐(0)
上一页 1 ··· 48 49 50 51 52 53 54 55 56 ··· 70 下一页