Nginx高性能Web服务器
文章平均质量分 73
[作者:Poechant] Nginx是目前最流行的基于BSD-like协议、轻量级、高性能的HTTP服务器、反向代理服务器和电子邮件(SMTP/POP3/IMAP)服务器。CSDN的Nginx专栏引领大家Step by Step地一起领略当今最强大高性能的Web服务器。
钟超
阿里巴巴集团总监/资深综合运营专家,连续创业者,关于 AI、电商、社交媒体领域,毕业于中国科学技术大学计算机系本科。
展开
-
Nginx 源码完全剖析(11)ngx_spinlock
Nginx 源码完全剖析(11)ngx_spinlock作者:钟超博客:http://Blog.CSDN.net/Poechant邮箱:zhongchao.ustc#gmail.com (#->@)日期:2012年10月12日Nginx 是多进程模式的,一个 master 与多个 workers,一般工作在多核 CPU 上,所以自旋锁就是必须用到的。Nginx 中的自旋锁的定义,位于 ngx_sp原创 2012-10-12 04:22:11 · 17716 阅读 · 3 评论 -
Nginx 源码完全剖析(10)ngx_radix_tree
Nginx 源码完全剖析(10)ngx_radix_tree作者:钟超博客:http://Blog.CSDN.net/Poechant邮箱:zhongchao.ustc#gmail.com (#->@)日期:2012年10月12日ngx_radix_tree.h// 未被使用的节点#define NGX_RADIX_NO_VALUE (uintptr_t) -1typedef struc原创 2012-10-12 03:42:34 · 12419 阅读 · 4 评论 -
Nginx源码完全注释(9)nginx.c: ngx_get_options
Nginx源码完全注释(9)nginx.c: ngx_get_options作者:柳大·Poechant(钟超)博客:Blog.CSDN.net/Poechant邮箱:zhongchao.ustc#gmail.com (# -> @)日期:2012/09/29本文分析 ngxin.c 中的 ngx_get_options 函数,其影响:nginx.c 中的:static ngx_uint_t原创 2012-09-29 15:33:29 · 37385 阅读 · 11 评论 -
Nginx源码完全注释(8)ngx_errno.c
Nginx源码完全注释(8)ngx_errno.c作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:2012/09/29errno.h中的strerror(int errno)可以确定指定的errno的错误的提示信息。在 Nginx 中,将所有错误提示信息预先存储在一个数组里,而预先确定原创 2012-09-29 14:58:27 · 18248 阅读 · 0 评论 -
Nginx源码完全注释(7)ngx_palloc.h/ngx_palloc.c
Nginx源码完全注释(7)ngx_palloc.h/ngx_palloc.c作者:钟超邮箱:zhongchao.ustc#gmail.com (# -> @)博客:Blog.CSDN.net/Poechant日期:2012年9月28日ngx_palloc.h/* * NGX_MAX_ALLOC_FROM_POOL should be (ngx_pagesize - 1), i.e. 4095原创 2012-09-28 22:53:58 · 11693 阅读 · 1 评论 -
Nginx源码完全注释(6)core/murmurhash
Nginx源码完全注释(6)murmurhash作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:August 18th, 2012MurmurHash2 was written by Austin Appleby, and is placed in the public domain.原创 2012-09-09 20:27:07 · 10395 阅读 · 0 评论 -
Nginx源码完全注释(5)core/ngx_cpuinfo.c
Nginx源码完全注释(5)core/ngx_cpuinfo.c作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:August 18th, 2012/* * Copyright (C) Igor Sysoev * Copyright (C) Nginx, Inc. */#i原创 2012-09-09 14:00:19 · 7939 阅读 · 0 评论 -
Nginx源码完全注释(4)ngx_queue.h / ngx_queue.c
Nginx源码完全注释(4)ngx_queue.h / ngx_queue.c作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:August 17th, 2012Nginx 中的队列是有头的,头节点和队列中的节点都是 ngx_queue_t。头节点不用于存储数据,数据是从头节点的 nex原创 2012-09-09 13:58:29 · 5283 阅读 · 0 评论 -
Nginx源码完全注释(3)ngx_list.h / ngx_list.c
Nginx源码完全注释(3)ngx_list.h / ngx_list.c作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:August 16th, 2012列表头文件ngx_list.h#ifndef _NGX_LIST_H_INCLUDED_#define _NGX_LIST_H原创 2012-09-09 13:57:28 · 5004 阅读 · 0 评论 -
Nginx源码完全注释(2)ngx_array.h / ngx_array.c
Nginx源码完全注释(2)ngx_array.h / ngx_array.c作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:August 15th, 2012数组头文件 ngx_array.h#include #include struct ngx_array_s {原创 2012-09-09 13:56:46 · 5760 阅读 · 0 评论 -
Nginx源码完全注释(1)ngx_alloc.h / ngx_alloc.c
Nginx源码完全注释(1)ngx_alloc.h / ngx_alloc.c作者:柳大·Poechant时间:2012年7月1日博客:Blog.CSDN.net/Poechant首先看 ngx_alloc.h 文件,主要声明或宏定义了 ngx_alloc,ngx_calloc,ngx_memalign,ngx_free。/* * Copyright (C) Igor Sysoev * Co原创 2012-07-01 21:44:46 · 8207 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(16)小议location匹配模式优先级
高性能Web服务器Nginx的配置与部署研究(16)小议location匹配模式优先级Author: 柳大·Poechant(钟超)Email: zhongchao.ustc#gmail.com(#->@)Blog: Blog.CSDN.net/PoechantDate: June 20th, 20121 location 的匹配符1.1 等于匹配符:=等于匹配符就是等号,特点可以概括为两点:精确原创 2012-06-20 00:27:48 · 10177 阅读 · 6 评论 -
解剖Nginx·模块开发篇(6)配置文件config入门
解剖Nginx·模块开发篇(6)配置文件config入门作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:June 13th, 2012本文介绍 config 文件的初级写法,作为入门。首先你要知道 config 其实就是一个 shell 脚本,是在./configure的时候调用的。所原创 2012-06-13 00:44:51 · 11437 阅读 · 0 评论 -
解剖Nginx·模块开发篇(5)解读内置非默认模块 ngx_http_stub_status_module
解剖Nginx·模块开发篇(5)解读内置非默认模块 ngx_http_stub_status_module作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:June 3nd, 20121 Backgroundngx_http_stub_status_module 是一个 Nginx 的内原创 2012-06-03 12:51:33 · 11417 阅读 · 2 评论 -
解剖Nginx·模块开发篇(4)模块开发中的命名规则和模块加载与运行流程
解剖Nginx·模块开发篇(4)模块开发中的命名规则和模块加载与运行流程作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:June 2nd, 20121 命名规则1.1 基本变量基本变量有三个:ngx_module_t 类型的 ngx_http_foo_bar_module;ngx_co原创 2012-06-03 12:51:00 · 9075 阅读 · 6 评论 -
解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现
解剖Nginx·模块开发篇(3)ngx_http_hello_world_module 模块的基本函数实现作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:June 2nd, 2012还记得我们定义过一个结构体如下吗?typedef struct { ngx_str_t outp原创 2012-06-03 12:50:24 · 10087 阅读 · 1 评论 -
解剖Nginx·模块开发篇(2)ngx_http_hello_world_module 模块基本结构定义
解剖Nginx·模块开发篇(2)ngx_http_hello_world_module 基本结构定义作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:June 2nd, 2012HelloWorld 是一个典型的 location 模块。什么是 location 模块?在 Nginx 中原创 2012-06-03 12:49:26 · 10970 阅读 · 0 评论 -
解剖Nginx·模块开发篇(1)跑起你的 Hello World 模块!
解剖Nginx·模块开发篇(1)跑起你的 Hello World 模块!作者:柳大·Poechant(钟超)邮箱:zhongchao.ustc#gmail.com(# -> @)博客:Blog.CSDN.net/Poechant日期:June 2nd, 20121 学习 Nginx 模块开发需要有哪些准备?需要的预备知识不多,有如下几点:有过一些 C 语言的编程经历;知道 Nginx 是干嘛的,并原创 2012-06-03 12:48:32 · 43850 阅读 · 28 评论 -
解剖Nginx·自动脚本篇(7)类型相关脚本系列
解剖 Nginx·自动脚本篇(7)类型相关脚本系列Author: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 12th, 2012Copyright © 柳大·Poechant1 auto/types/sizeof该脚本的功能,是通过测试程序获知给定的ngx_type的大原创 2012-03-16 00:10:32 · 4186 阅读 · 0 评论 -
解剖Nginx·自动脚本篇(6)编译器名称变量脚本 auto/cc/name
解剖 Nginx·自动脚本篇(6)编译器名称变量脚本 auto/cc/nameAuthor: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 12th, 2012Copyright © 柳大·Poechant回顾变量 CC最初是在auto/options脚本中初始化的:CC=原创 2012-03-15 00:40:51 · 5519 阅读 · 0 评论 -
解剖Nginx·自动脚本篇(5)编译器相关主脚本
解剖Nginx·自动脚本篇(5)编译器相关主脚本Author: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 12th, 2012Copyright © 柳大·Poechant在 Nginx 的自动脚本中,auto/cc目录下的所有脚本都是用于编译器相关配置使用的。Ngin原创 2012-03-14 00:41:48 · 5122 阅读 · 1 评论 -
解剖Nginx·自动脚本篇(4)工具型脚本系列
解剖 Nginx·自动脚本篇(4)工具型脚本系列Author: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 12th, 2012Copyright © 柳大·Poechant目录auto/have 向自动配置头文件追加可用宏定义(objs/ngx_auto_config.原创 2012-03-13 00:10:33 · 6522 阅读 · 1 评论 -
解剖Nginx·自动脚本篇(3)源码相关变量脚本 auto/sources
解剖 Nginx ·自动脚本篇(3)源码相关变量脚本 auto/sourcesAuthor: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 6th, 2012Copyright © 柳大·Poechant在configure脚本中,运行完auto/options和auto/原创 2012-03-07 00:54:27 · 5215 阅读 · 1 评论 -
解剖Nginx·自动脚本篇(2)设置初始变量脚本 auto/init
解剖 Nginx ·自动脚本篇(2)设置初始变量脚本 auto/initAuthor: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 4th, 2012Copyright © 柳大·Poechant在configure中运行完auto/options脚本后,接着运行auto原创 2012-03-07 00:51:01 · 5285 阅读 · 0 评论 -
解剖Nginx·自动脚本篇(1)解析配置选项脚本 auto/options
解剖 Nginx ·自动脚本篇(1)解析配置选项脚本 auto/optionsAuthor: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: March 4th, 2012Copyright © 柳大·Poechant在安装Nginx之前(即运行make脚本之前),首先是进行安装的配置准原创 2012-03-07 00:49:02 · 8072 阅读 · 3 评论 -
高性能Web服务器Nginx的配置与部署研究(15)Upstream负载均衡模块
转载请注明来自“柳大的CSDN博客”:http://blog.csdn.net/poechant更多文章请浏览CSDN专栏《Nginx高性能Web服务器》或服务器后端开发系列——《实战Nginx高性能Web服务器》Nginx 的 HttpUpstreamModule 提供对后端(backend)服务器的简单负载均衡。一个最简单的 upstream 写法如下:原创 2012-02-13 21:10:36 · 27419 阅读 · 6 评论 -
高性能Web服务器Nginx的配置与部署研究(14)平滑升级你的Nginx
1、概述(可以直接跳过看第2部分)Nginx方便地帮助我们实现了平滑升级。其原理简单概括,就是:(1)在不停掉老进程的情况下,启动新进程。(2)老进程负责处理仍然没有处理完的请求,但不再接受处理请求。(3)新进程接受新请求。(4)老进程处理完所有请求,关闭所有连接后,停止。这样就很方便地实现了平滑升级。一般有两种情况下需要升级Nginx,一种是确实要升级Nginx的版本,另一种是要为Nginx添加原创 2012-01-18 00:18:35 · 11734 阅读 · 3 评论 -
高性能Web服务器Nginx的配置与部署研究(13)应用模块之Memcached模块+Proxy_Cache双层缓存模式
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。通过《高性能Web服务器Nginx的配置与部署研究——(11)应用模块之Memcached模块的两大应用场景》一文,我们知道Nginx从Memcached读取数据的方式,如果命中,那么效率是相当高的。那么:(转载请注明来自Poechant的CSDN博客:http://blog.c原创 2012-01-06 01:09:16 · 9794 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(12)应用模块之Memcached做文件缓存时压缩引起的问题
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。在上一篇文章中,提到的Nginx的Memcached模块应用场景,主要是作为文件缓存。然后就发现了一个问题,当以字节数组方式缓存较大的文件时,缓存数据会被压缩,从而在读取的时候出现问题。(本文欢迎转载,尊重他人劳动,转载请注明出处:http://blog.csdn.net/p原创 2012-01-05 11:29:35 · 4855 阅读 · 1 评论 -
高性能Web服务器Nginx的配置与部署研究(11)应用模块之Memcached模块的两大应用场景
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。一、应用场景1(转载请注明:http://blog.csdn.net/poechant/article/details/7176921)最近在一个项目中,用到了Nginx的Memcached模块,所以就在这个系列教程中提前把Memcached模块拿出来写了。另外发现最近我的博客文章频原创 2012-01-05 02:18:45 · 7693 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(10)核心模块之HTTP模块Location相关指令
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。一、基本语法语法:location [= | ~ | ~* | ^~] {...}缺省:N/A作用域:server二、匹配规则1. 四种匹配方式= 精确匹配~ 大小写敏感正则匹配~* 大小写不敏感正则匹配^~ 前缀匹配2. loc原创 2012-01-04 16:11:19 · 4971 阅读 · 1 评论 -
高性能Web服务器Nginx的配置与部署研究(9)核心模块之HTTP模块基本常用指令
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。一、HTTP模块的作用是什么?Nginx的HTTP模块用于控制Nginx的HTTP进程。二、指令1. alias含义:指定location使用的路径,与root类似,但不改变文件的跟路径,仅适用文件系统的路径。语法:alias原创 2012-01-04 13:59:00 · 13147 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(8)核心模块之事件模块
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。一、事件模块的作用是什么?用来设置Nginx处理链接请求。二、相关指令1. accept_mutex含义:设置是否使用连接互斥锁进行顺序的accept()系统调用。语法:accept_mutex ;缺省:on示例:accept_mu原创 2012-01-04 01:42:06 · 13003 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(7)核心模块之主模块的非测试常用指令
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。本文欢迎转载,转载必须注明出处:http://blog.csdn.net/poechant1. error_log含义:指定存储错误日志的文件语法:error_log [debug|info|notice|warn|error|crit]缺省:${prefix}原创 2012-01-04 00:48:01 · 8934 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(6)核心模块之主模块的测试常用指令
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。本文欢迎转载,转载必须注明出处:http://blog.csdn.net/poechant1. daemon含义:设置是否以守护进程模式运行语法:daemon on|off缺省:on示例:daemon off;注意:生产环境(production mode原创 2012-01-03 23:50:51 · 5306 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(5)Nginx配置符号
本文来自:CSDN博客专栏《Nginx高性能Web服务器》 及Poechant技术博客,转载请注明出处。1. 容量符号k 千字节K 千字节m 兆字节M 兆字节2. 时间符号ms 毫秒s 秒m 分h 时d 日w 周M 月(按照30天计算)y 年(按照365天计算)3. 示例1h 30m 表示1小时30分钟1y原创 2012-01-03 23:24:17 · 5158 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(4)Nginx常用命令
高性能Web服务器Nginx的配置与部署研究(4)Nginx常用命令Author: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: December 30th, 2011Update: February 36th, 2012Column: 《Nginx 高原创 2011-12-30 23:48:35 · 10789 阅读 · 0 评论 -
高性能Web服务器Nginx的配置与部署研究(3)Nginx请求处理机制
高性能Web服务器Nginx的配置与部署研究(3)Nginx的请求处理机制Author: Igor SysoevTranslator: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: December 7th, 2011Update: February 2翻译 2011-12-07 14:47:55 · 8795 阅读 · 3 评论 -
高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级配置与部署及“Hello World”
高性能Web服务器Nginx的配置与部署研究(2)Nginx入门级配置、部署与“Hello World”Author: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: August 29th, 2011Update: February 26th>, 2012原创 2011-12-07 11:26:34 · 14645 阅读 · 2 评论 -
高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例
高性能Web服务器Nginx的配置与部署研究(1)Nginx简介及入门示例Author: PoechantBlog: blog.CSDN.net/PoechantEmail: zhongchao.ustc#gmail.com (#->@)Date: August 29th, 2011Update: February 26th>, 2012概述从这篇博文起原创 2011-08-29 16:43:52 · 13393 阅读 · 3 评论