Nginx服务器学习
文章平均质量分 77
介绍了Nginx的安装启动,简单模块的编写,启动框架,进程模型及通信,事件驱动机制和负载均衡策略
walkerkalr
学无止境,梦想不止
展开
-
Nginx学习——Nginx进程间的通信
nginx进程间的通信进程间消息传递共享内存共享内存还是Linux下提供的最基本的进程间通信方式,它通过mmap和shmget系统调用在内存中创建了一块连续的线性地址空间,而通过munmap或者shmdt系统调用可以释放这块内存。使用共享内存的好处是当多个进程使用同一块共享内存时,在任何一个进程修改了共享内存中的内容后,其他进程通过访问这段共享内存都能够得到修改后的内容。Nginx原创 2014-07-28 21:35:27 · 3452 阅读 · 0 评论 -
Nginx学习——负载均衡
负载均衡Nginx提供了较多的负载均衡策略,包括加权轮询、IP哈希、fair、一致哈希等。前两个是Nginx官方源码内置的策略,而后面几个都是第三方模块,所以下面我们重点来看前两个内置策略。Nginx默认采用round_robin加权算法,如果要采用IP哈希策略,那么必须在Nginx的配置文件里通过配置指令ip_hash明确指定。当整个http配置块被Nginx解析完毕原创 2014-07-31 20:45:07 · 1430 阅读 · 0 评论 -
Nginx——事件驱动机制(惊群问题,负载均衡)
事件框架处理流程 每个worker子进程都在ngx_worker_process_cycle方法中循环处理事件,处理分发事件则在ngx_worker_process_cycle方法中调用ngx_process_events_and_timers方法,循环调用该方法就是 在处理所有事件,这正是事件驱动机制的核心。该方法既会处理普通的网络事件,也会处理定时器事件。ngx_pro原创 2014-07-31 10:20:15 · 2301 阅读 · 0 评论 -
Nginx学习——进程模型(worker进程)
进程模型worker进程 master进程模型核心函数ngx_master_process_cycle()中调用了创建子进程函数ngx_start_worker_processes(),该函数源码如下static voidngx_start_worker_processes(ngx_cycle_t *cycle, ngx_int_t n, ngx_int_t type)原创 2014-07-27 10:47:00 · 3545 阅读 · 0 评论 -
Nginx学习——进程模型(master 进程)
进程模型 Nginx分为Single和Master两种进程模型,Single模型即为单进程方式工作,具有较差的容错能力,不适合生产之用。Master模型即为一个master进程+N个worker进程的工作方式。生产环境都是用master-worker模型来工作。master进程 我们知道在main函数中完成了Nginx启动初始化过程,启动初始原创 2014-07-27 09:36:21 · 4312 阅读 · 0 评论 -
Nginx学习——启动框架
Nginx启动时框架处理流程下图包含了Nginx框架在启动阶段执行的所有基本流程:源码:第1步:在src\core\nginx.c的main函数中实现:主要语句:/*第1步:调用ngx_process_options方法设置配置文件路径等参数*/ if (ngx_process_options(&init_cycle) != NGX_OK) {原创 2014-07-26 21:37:32 · 1078 阅读 · 0 评论 -
Nginx学习——upstream模块
配置config ngx_addon_name=ngx_http_mytest_moduleHTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_mytest_module.c" 在nginx.conf中使用配置项 ...原创 2014-07-18 16:37:20 · 1626 阅读 · 1 评论 -
Nginx学习——http配置项解析编程
http配置项解析编程 配置config ngx_addon_name=ngx_http_mytest_moduleHTTP_MODULES="$HTTP_MODULES ngx_http_mytest_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_http_mytest_module.c" 在ngi...原创 2014-07-01 12:50:07 · 1435 阅读 · 0 评论 -
Nginx学习——Hello World模块
Hello World HTTP模块1.配置configngx_addon_name=ngx_http_mytest_moduleHTTP_MODULES="$HTTP_MODULESngx_http_mytest_module"NGX_ADDON_SRCS="$NGX_ADDON_SRCS$ngx_addon_dir/ngx_http_mytest_module.c"原创 2014-06-19 21:20:39 · 1021 阅读 · 0 评论 -
nginx安装及启动
1.准备工作运行环境:ubuntu 14.04下载及安装使用nginx的必备软件:gcc编译器:sudo apt-get install gccg++编译器:sudo apt-get install g++PCRE库:wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.21.t...原创 2014-06-18 20:52:37 · 916 阅读 · 0 评论