随笔分类 -  http&server&业务

http Server 四层 七层 udp 业务
摘要:首先看下 连接池的获取以及释放 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 阅读(129) 评论(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 阅读(235) 评论(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 阅读(251) 评论(0) 推荐(0) 编辑
摘要:1、connection 字段 2、accept 字段 3、user-agent 字段 4、host字段 等字段需要注意: HTTP事务的延时主要有以下:1).解析时延 DNS解析与DNS缓存 客户端首先需要根据URL确定Web服务器的IP地址和端口号,如果最近没有对URL中的主机名进行访问,通过D 阅读全文
posted @ 2020-08-05 23:04 codestacklinuxer 阅读(186) 评论(0) 推荐(0) 编辑
摘要:1、一般socket 建立链接后, 可以使用 if ((-1 == getsockname(fd, (struct sockaddr *)&dst_sa, &dst_len)) || (-1 == getpeername(fd, (struct sockaddr *)&src_sa, &src_le 阅读全文
posted @ 2020-07-29 11:23 codestacklinuxer 阅读(101) 评论(0) 推荐(0) 编辑
摘要:今天看公司代码时,发现代码里面都是使用epoll,有的备注 epoll 效率比poll 高!!! 所以就得说一说了;宏观看一看epoll 和select的实现: select原理概述 调用select时,会发生以下事情: 从用户空间拷贝fd_set到内核空间; 注册回调函数__pollwait; 遍 阅读全文
posted @ 2020-07-28 20:30 codestacklinuxer 阅读(2263) 评论(0) 推荐(2) 编辑
摘要:/* Epoll private bits inside the event mask */#define EP_PRIVATE_BITS (EPOLLWAKEUP | EPOLLONESHOT | EPOLLET | EPOLLEXCLUSIVE) 主要是看下:惊群源: 1、socket wake 阅读全文
posted @ 2020-06-03 23:55 codestacklinuxer 阅读(739) 评论(0) 推荐(0) 编辑
摘要:之前做网络设备portal 认证时 有个需求有没有做!!portal server 实现多机热备,此处涉及到网络设备做四层/五层代理。 先看看如果要是做到每个服务器认证数量一样多!!那实现负载均衡有哪些方法呢?? 轮询 每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔 阅读全文
posted @ 2020-05-02 14:35 codestacklinuxer 阅读(138) 评论(0) 推荐(0) 编辑
摘要:上一篇文章写道了udp 使用reuseport 多线程编程!!! 但是有几个问题需要考虑一下: 之前hash使用sip sport dip dport为key, 很正常同一个客户端回hash到同一个socket上。。但是其中一个线程挂了呢????????????对于TCP而言,hash的不一致仅仅影 阅读全文
posted @ 2020-04-25 22:02 codestacklinuxer 阅读(247) 评论(0) 推荐(0) 编辑
摘要:在对 socket 绑定和监听前经过了以下设置 无阻塞(O_NONBLOCK) TCP 无延时(TCP_NODELAY) 可重用地址(SO_REUSEADDR) 对于 clien server需要设置: 无阻塞 server -->无延时 1、SO_REUSEADDR选项: 在服务器程序中,SO_R 阅读全文
posted @ 2020-03-29 23:01 codestacklinuxer 阅读(380) 评论(0) 推荐(0) 编辑
摘要:HTTP中头部字段说明: Accept:告诉WEB服务器自己接受什么介质类型,* /* 表示任何类型,type/ * 表示该类型下的所有子类型,type/sub-type。 Accept-Charset: 浏览器申明自己接收的字符集 Accept-Encoding: 浏览器申明自己接收的编码方法,通 阅读全文
posted @ 2020-03-02 09:51 codestacklinuxer 阅读(40) 评论(0) 推荐(0) 编辑
摘要:1、HTTP方法 GET :获取资源 ,GET 方法用来请求访问已被 URI 识别的资源 POST:传输(上传和下载)实体主体 ,POST 方法用来传输实体的主体。虽然用 GET 方法也可以传输实体的主体,但一般不用 GET 方法进行传输,而是用 POST 方法。虽说 POST的功能与 GET 很相 阅读全文
posted @ 2020-03-01 23:42 codestacklinuxer 阅读(221) 评论(0) 推荐(0) 编辑
摘要:EPOLL的LT/ET 模式下的读写 从一个非阻塞的socket上调用recv/send函数, 返回EAGAIN或者EWOULDBLOCK(注: EAGAIN就是EWOULDBLOCK)从字面上看, 意思是:EAGAIN: 再试一次,EWOULDBLOCK: 如果这是一个阻塞socket, 操作将被 阅读全文
posted @ 2020-03-01 23:41 codestacklinuxer 阅读(407) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2020-02-26 21:27 codestacklinuxer 阅读(255) 评论(0) 推荐(0) 编辑
摘要:upstream直接转发响应时的具体处理流程,主要是上面subrequest_memory为1的场景,此时该请求属于一个子请求。分析默认的input_filter的处理方法,如果读取包头时同时读到了包体信息,会调用input_filter方法处理: /* 将u->buffer.last - u->b 阅读全文
posted @ 2020-02-26 21:26 codestacklinuxer 阅读(428) 评论(0) 推荐(0) 编辑
摘要:Nginx访问上游服务器的流程大致分以下几个阶段:启动upstream、连接上游服务器、向上游发送请求、接收上游响应(包头/包体)、结束请求。 upstream相关的两个重要数据结构ngx_http_upstream_t和ngx_http_upstream_conf_t /* upstream有3种 阅读全文
posted @ 2020-02-26 21:25 codestacklinuxer 阅读(625) 评论(0) 推荐(0) 编辑
摘要:ngx_http_process_request如果设置了定时器则删除,既然所有的请求已经接收完毕,就不会再发生超时了 重设连接的读写回调函数 重设请求读事件回调函数 调用 ngx_http_handler 处理 HTTP 请求的 11 个阶段 调用 ngx_http_run_posted_requ 阅读全文
posted @ 2020-02-25 17:54 codestacklinuxer 阅读(670) 评论(0) 推荐(0) 编辑
摘要:HTTP 请求行正确处理完成后,针对 HTTP/1.0 及以上版本紧接着要做的就是请求 HEADER 的处理与解析了 /** * 用于处理http的header数据 * 请求头: * Host: localhost * User-Agent: Mozilla/5.0 (Windows NT 5.1; 阅读全文
posted @ 2020-02-25 16:57 codestacklinuxer 阅读(299) 评论(0) 推荐(0) 编辑
摘要:在 ngx_http_wait_request_handler 的最后调用了 ngx_http_process_request_line 函数用来处理和解析这次请求的全文 在读事件被触发时,内核套接字缓冲区的大小未必足够接收到全部的HTTP请求行;所以可能多次调用ngx_http_process_r 阅读全文
posted @ 2020-02-25 16:53 codestacklinuxer 阅读(604) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示