开源 -- 15




1 2
概述权限验证是服务器提供的最基本的功能之一,nginx 当然也提供了这一功能在之前的博客中,我们介绍了 nginx 请求处理的 11 个阶段:HTTP 请求处理的 11 个阶段 -- ngx_http_handler权限验证就是在 NGX_HTTP_ACCESS_PHASE 阶段完成的 NGX_HTTP_ACCESS_PHASE -- ngx_http_core_access_phaseNGX_HTTP_ACCESS_PHASE 阶段的 checker 是 ngx_http_core_access_phase 函数// ngx_int_t // ngx_http_core_access_phase(ngx_http_request_t *r, // ngx_http_phase_handler_t *ph) // NGX_HTTP_POST_ACCESS_PHASE 阶段 checker,判断用户是否有权限访问 {{{ ngx_int_t ngx_http_core_access_phase(ngx_http_request_t *r, ngx_http_phase_handler_t *ph) { ngx_int_t
#技术帖    #龙潭书斋    #nginx    #源码   

200x200


概述web 服务器 nginx 以其高性能与抗并发能力越来越多的被用户使用作为一款服务器产品,其运行状态是我们密切关注的,因此,对 nginx 的实时

#技术帖    #web    #服务器    #技术分享   

200x200


概述在上一篇日志中,我们介绍了 PHP 执行的大致流程:PHP 的执行流程 其中,语义分析后生成了由 zend 引擎处理的 opcode,如

#技术帖    #php    #技术分享    #源码   

200x200


nginx 静态文件的处理在上一篇博客的介绍中,我们介绍了 nginx 处理 HTTP 请求的 11 个具体的阶段HTTP 请求处

#技术帖    #龙潭书斋    #nginx    #源码   

200x200


概述前面我们阅读了 nginx 的哈希表结构 ngx_hash_t哈希表结构 -- ngx_hash_t nginx 的哈希表的一个很重要的应用场景是

#linux    #nginx    #opensource    #sourcecode   
概述Elasticsearch 是一个实时分布式搜索引擎,可以以非常高的速度实现大数据处理一般用于全文搜索、结构化搜索与分析维基百科、英国卫报、stackoverflow、github 等多家大型企业都使用 Elasticsearch 作为大数据处理与实时分析的解决方案 安装及运行ubuntu 环境中 elasticsearch 的安装如果使用的是 ubuntu,那么可以执行:# 获取 elasticsearch 的公钥 wget -O - http://packages.elasticsearch.org/GPG-KEY-elasticsearch | sudo apt-key add - 然后执行:sudo echo "deb http://packages.elasticsearch.org/elasticsearch/1.1/debian stable main" >> /etc/apt/sources.list sudo apt-get update && sudo apt-get install elasticsearch  其他 linux 发行版的安装通过从官网上下载最新版的&
#技术帖    #database    #技术分享    #存储   

200x200


 ngxin 配置结构要理解 HTTP 模块配置解析的过程,首先需要对 nginx 的配置文件结构做一个了解nginx 的配置文

#技术帖    #龙潭书斋    #服务器    #nginx   
nginx 的互斥锁nginx 自己实现了互斥锁,这样做的目的主要是为了兼容性,在不支持锁甚至不支持原子操作的环境下实现锁操作 nginx 锁结构ngx_accept_mutex 是一个 ngx_shmtx_t 结构体,ngx_shmtx_t 描述了 nginx 的锁结构// struct ngx_shmtx_t // nginx 锁结构 {{{ typedef struct { #if (NGX_HAVE_ATOMIC_OPS) // 是否支持原子操作 ngx_atomic_t *lock; #if (NGX_HAVE_POSIX_SEM) // 是否支持信号量 ngx_atomic_t *wait; ngx_uint_t semaphore; sem_t sem; #endif #else // 不支持原子操作则使用文件操作 ngx_fd_t fd; u_char *name; #endif ngx_uint_t spin; // 自旋锁标识 } ngx_shmtx_t; // }}}  nginx 使用这个结构实现了&n
#技术帖    #龙潭书斋    #fcntl    #进程   
概述监听连接数组、复用连接队列、模块配置上下文初始化上篇日志中,我们对 nginx 各模块初始化有了大致的了解,可是在循环中究竟做了什么呢?我们需要仔细观察 ngx_init_cycle 是 nginx 初始化进程中最重要的一个环节,其中对模块配置文件的创建和初始化以及对模块的初始化就是这个初始化函数中最重要的环节了在调用 ngx_init_cycle 前,首先对所有模块进行了编号:// objs/ngx_modules.c // ngx_module_t *ngx_modules[] {{{ // &ngx_core_module, // NGX_CORE_MODULE // &ngx_errlog_module, // NGX_CORE_MODULE // &ngx_conf_module, // NGX_CONF_MODULE // &ngx_events_module, // NGX_CORE_MODULE // &ngx_event_core_module, // NGX_EVENT_MODULE // &ngx_epoll_module,
#技术帖    #龙潭书斋    #nginx    #源码   
1 2



京ICP备15018585号