随笔分类 -  nginx

摘要:转自:网易博客服务器的并发模型设计是网络编程中很关键的一个部分,服务器的并发量取决于两个因素,一个是提供服务的进程数量,另外一个是每个进程可同时处理的并发连接数量。相应的,服务器的并发模型也由两个部分构成:进程模型和连接处理机制。进程模型主要有以下3种模型:(1)单进程模式:这种模式的服务器称为迭代... 阅读全文
posted @ 2014-08-17 19:29 合唱团abc 阅读(402) 评论(0) 推荐(0) 编辑
摘要:http://cjhust.blog.163.com/blog/static/175827157201211561035130/ 阅读全文
posted @ 2014-08-17 19:16 合唱团abc 阅读(188) 评论(0) 推荐(0) 编辑
摘要:内核源码: https://www.nowcoder.com/discuss/26226?type=0&order=0&pos=21&page=1 epoll流程:<!--?xml:namespace prefix = "o" ns = "urn:schemas-microsoft-com:offi 阅读全文
posted @ 2014-08-16 18:53 合唱团abc 阅读(1342) 评论(1) 推荐(2) 编辑
摘要:转自:江南烟雨IP哈希初始化IP哈希的初始化函数ngx_http_upstream_init_ip_hash(ngx_http_upstream_ip_hash_module.c):static ngx_int_tngx_http_upstream_init_ip_hash(ngx_conf_t *... 阅读全文
posted @ 2014-08-11 18:53 合唱团abc 阅读(1963) 评论(0) 推荐(0) 编辑
摘要:转自:江南烟雨本文介绍的是客户端请求在多个后端服务器之间的均衡,注意与客户端请求在多个nginx进程之间的均衡相区别。如果Nginx是以反向代理的形式配置运行,那么对请求的实际处理需要转发到后端服务器运行,如果后端服务器有多台,如何选择一台合适的后端服务器来处理当前请求,就是本文要说的负载均衡。这两... 阅读全文
posted @ 2014-08-11 18:35 合唱团abc 阅读(1594) 评论(0) 推荐(0) 编辑
摘要:转自:http://blog.csdn.net/m13666368773/article/details/8060481正向代理的概念正向代理,也就是传说中的代理,他的工作原理就像一个跳板,简单的说,我是一个用户,我访问不了某网站,但是我能访问一个代理服务器这个代理服务器呢,他能访问那个我不能访问的... 阅读全文
posted @ 2014-08-10 18:54 合唱团abc 阅读(277) 评论(0) 推荐(0) 编辑
摘要:参考:http://zyan.cc/nginx_php_v6/nginx相对于apache的优点:1.轻量级,同样的web 服务,比apache服务器占用更少的内存及资源2.抗并发,nginx在处理请求是异步非阻塞的(epoll),而apache 则是阻塞型的(select),在高并发下nginx ... 阅读全文
posted @ 2014-08-10 18:52 合唱团abc 阅读(217) 评论(0) 推荐(0) 编辑
摘要:Nginx启动过程流程图:ngx_cycle_t结构体:Nginx的启动初始化在src/core/nginx.c的main函数中完成,当然main函数是整个Nginx的入口,除了完成启动初始化任务以外,也必定是所有功能模块的入口之处。Nginx的初始化工作主要围绕一个类型为ngx_cycle_t类型... 阅读全文
posted @ 2014-08-03 16:26 合唱团abc 阅读(401) 评论(0) 推荐(0) 编辑
摘要:一、Nginx整体架构正常执行中的nginx会有多个进程,最基本的有master process(监控进程,也叫做主进程)和woker process(工作进程),还可能有cache相关进程。二、核心进程模型启动nginx的主进程将充当监控进程,而由主进程fork()出来的子进程则充当工作进程。ng... 阅读全文
posted @ 2014-08-03 16:16 合唱团abc 阅读(924) 评论(0) 推荐(0) 编辑
摘要:本文介绍的负载均衡是针对的客户端请求在多个Nginx进程之间的均衡。注意与客户端请求在多个后端服务器之间的均衡相区别。负载均衡问题的产生在nginx中,建立连接的时候,会设计负载均衡问题。在多个子进程争抢处理一个新连接事件时,一定只有一个worker子进程最终会成功建立连接,随后 它会一直处理这个连... 阅读全文
posted @ 2014-07-28 14:12 合唱团abc 阅读(311) 评论(0) 推荐(0) 编辑
摘要:转自:江南烟雨惊群问题的产生在建立连接的时候,Nginx处于充分发挥多核CPU架构性能的考虑,使用了多个worker子进程监听相同端口的设计,这样多个子进程在accept建立新连接时会有争抢,这会带来著名的“惊群”问题,子进程数量越多越明显,这会造成系统性能的下降。一般情况 下,有多少CPU核心就有... 阅读全文
posted @ 2014-07-28 14:01 合唱团abc 阅读(373) 评论(0) 推荐(0) 编辑
摘要:处理新连接事件的回调函数是ngx_event_accept,原型如下:void ngx_event_accept(ngx_event_t *ev)具体流程如下:1)首先调用accept方法试图建立新连接,如果没有准备好的新连接事件,ngx_event_accept方法会直接返回2)设置负载均衡阀值n... 阅读全文
posted @ 2014-07-28 13:50 合唱团abc 阅读(350) 评论(0) 推荐(0) 编辑
摘要:转自:烟雨江南Nginx事件管理主要是网络事件和定时器事件。下面介绍定时器事件管理,即超时管理。为什么进行超时管理?Nginx有必要对可能发生超时的事件进行统一管理,并在事件超时时作出相应的处理,比如回收资源,返回错误等。举例来说,当客户端对nginx发出请求连接后,nginx会accept()并建... 阅读全文
posted @ 2014-07-28 13:34 合唱团abc 阅读(624) 评论(0) 推荐(0) 编辑
摘要:事件处理框架通过事件驱动机制来处理事件ngx_event_module 事件模块ngx_event_core_module 决定使用哪个事件驱动机制即事件驱动模块每个事件驱动模块都要实现ngx_event_module_t接口-------------------------------------... 阅读全文
posted @ 2014-07-24 15:32 合唱团abc 阅读(644) 评论(0) 推荐(0) 编辑
摘要:当需要读两个以上的I/O的时候,如果使用阻塞式的I/O,那么可能长时间的阻塞在一个描述符上面,另外的描述符虽然有数据但是不能读出来,这样实时性不能满足要求,大概的解决方案有以下几种: 1.使用多进程或者多线程,但是这种方法会造成程序的复杂,而且对与进程与线程的创建维护也需要很多的开销。(Apache 阅读全文
posted @ 2014-07-21 13:53 合唱团abc 阅读(1170) 评论(1) 推荐(0) 编辑
摘要:功能:创建连接池,决定使用哪些事件驱动机制,以及初始化将要使用的事件模块该模块定义了ngx_event_core_commands数组处理其感兴趣的7个配置项ngx_event_conf_t为该模块定义的用于存储配置项参数的结构体在Nginx启动过程中还没有fork出worker子进程时,会首先调用... 阅读全文
posted @ 2014-07-21 10:00 合唱团abc 阅读(404) 评论(2) 推荐(0) 编辑
摘要:一、事件处理框架概述事件处理框架所要解决的问题是如何收集、管理、分发事件。事件以网络事件和定时器事件为主,而网络事件中以TCP网络事件为主。事件处理框架需要在不同的操作系统内核中选择一种事件驱动机制(I/O多路复用)支持网络事件的处理。步骤:1.Nginx定义了一个核心模块ngx_events_mo... 阅读全文
posted @ 2014-07-18 16:21 合唱团abc 阅读(1637) 评论(0) 推荐(0) 编辑
摘要:调用HTTP模块的流程:Worker进程会在一个for循环语句中反复调用事件模块检测网络事件。当事件模块检测到某个客户端发起的TCP请求时(接收到SYN包),将会为它建立TCP连接,成功建立连接后根据nginx.conf文件中的配置会交由HTTP框架处理。HTTP框架会试图接收完整的HTTP头部,并... 阅读全文
posted @ 2014-07-13 15:29 合唱团abc 阅读(351) 评论(0) 推荐(0) 编辑
摘要:模块如何在运行中生效配置文件中的location块决定了匹配某种URL的请求将会由相应的HTTP模块处理,因此,运行时HTTP框架会在接收完毕HTTP请求的头部后,将请求的URL与配置文件中的所有location进行匹配,匹配后再根据location{}内的配置项选择http模块来调用。在mytes... 阅读全文
posted @ 2014-07-12 14:27 合唱团abc 阅读(329) 评论(0) 推荐(0) 编辑
摘要:上下文与全异步web服务器的关系请求上下文指在一个请求的处理过程中,把一些关键的信息保存下来的类似struct这样的结构体。每个http模块都可以有自己的上下文结构体,一般都是在刚开始处理请求时在内存池上分配它,之后当经由epoll、http框架再次调用到http模块的处理方法时,这个http模块可... 阅读全文
posted @ 2014-07-11 16:33 合唱团abc 阅读(3616) 评论(0) 推荐(0) 编辑

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