DoubleLi

qq: 517712484 wx: ldbgliet

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

随笔分类 -  nginx

上一页 1 2 3 4 5 6 7 下一页

nginx
摘要:紧接在server-rewrite阶段后边的是find-config阶段。这个阶段并不支持 Nginx 模块注册处理程序,而是由 Nginx 核心来完成当前请求与location配置块之间的配对工作。换句话说,在此阶段之前,请求并没有与任何location配置块相关联。因此,对于运行在find-co... 阅读全文
posted @ 2014-12-18 15:02 DoubleLi 阅读(536) 评论(0) 推荐(0) 编辑

摘要:前面我们详细讨论了rewrite、access和content这三个最为常见的 Nginx 请求处理阶段,在此过程中,也顺便介绍了运行在这三个阶段的众多 Nginx 模块及其配置指令。同时可以看到,请求处理阶段的划分直接影响到了配置指令的执行顺序,熟悉这些阶段对于正确配置不同的 Nginx 模块并实... 阅读全文
posted @ 2014-12-18 15:01 DoubleLi 阅读(603) 评论(0) 推荐(0) 编辑

摘要:来看一个ngx_static模块服务磁盘文件的例子。我们使用下面这个配置片段:location/{root/var/www/;}同时在本机的/var/www/目录下创建两个文件,一个文件叫做index.html,内容是一行文本thisismyhome;另一个文件叫做hello.html,内容是一行文... 阅读全文
posted @ 2014-12-18 15:00 DoubleLi 阅读(640) 评论(0) 推荐(0) 编辑

摘要:下面以教程系列为单位,列举出了已经发表和计划发表的连载教程:Nginx 新手起步Nginx 是如何匹配 URI 的Nginx 变量漫谈Nginx 配置指令的执行顺序Nginx 的 if 是邪恶的Nginx 子请求Nginx 静态文件服务Nginx 的日志服务基于 Nginx 的应用网关基于 Ngin... 阅读全文
posted @ 2014-12-18 14:52 DoubleLi 阅读(746) 评论(0) 推荐(0) 编辑

摘要:前面我们在(五)中提到,在一个location中使用content阶段指令时,通常情况下就是对应的 Nginx 模块注册该location中的“内容处理程序”。那么当一个location中未使用任何content阶段的指令,即没有模块注册“内容处理程序”时,content阶段会发生什么事情呢?谁又来... 阅读全文
posted @ 2014-12-18 14:51 DoubleLi 阅读(14822) 评论(0) 推荐(1) 编辑

摘要:Nginx 的content阶段是所有请求处理阶段中最为重要的一个,因为运行在这个阶段的配置指令一般都肩负着生成“内容”(content)并输出 HTTP 响应的使命。正因为其重要性,这个阶段的配置指令也异常丰富,例如前面我们一直在示例中广泛使用的echo指令,在Nginx 变量漫谈(二)中接触到的... 阅读全文
posted @ 2014-12-18 14:50 DoubleLi 阅读(1204) 评论(0) 推荐(0) 编辑

摘要:ngx_lua模块提供了配置指令access_by_lua,用于在access请求处理阶段插入用户 Lua 代码。这条指令运行于access阶段的末尾,因此总是在allow和deny这样的指令之后运行,虽然它们同属access阶段。一般我们通过access_by_lua在ngx_access这样的模... 阅读全文
posted @ 2014-12-18 14:48 DoubleLi 阅读(971) 评论(0) 推荐(0) 编辑

摘要:如前文所述,除非像ngx_set_misc模块那样使用特殊技术,其他模块的配置指令即使是在rewrite阶段运行,也不能和ngx_rewrite模块的指令混合使用。不妨来看几个这样的例子。第三方模块ngx_headers_more提供了一系列配置指令,用于操纵当前请求的请求头和响应头。其中有一条名叫... 阅读全文
posted @ 2014-12-18 14:46 DoubleLi 阅读(1501) 评论(0) 推荐(0) 编辑

摘要:我们前面已经知道,当set指令用在location配置块中时,都是在当前请求的rewrite阶段运行的。事实上,在此上下文中,ngx_rewrite模块中的几乎全部指令,都运行在rewrite阶段,包括Nginx 变量漫谈(二)中介绍过的rewrite指令。不过,值得一提的是,当这些指令使用在ser... 阅读全文
posted @ 2014-12-18 14:36 DoubleLi 阅读(1461) 评论(0) 推荐(0) 编辑

摘要:大多数 Nginx 新手都会频繁遇到这样一个困惑,那就是当同一个location配置块使用了多个 Nginx 模块的配置指令时,这些指令的执行顺序很可能会跟它们的书写顺序大相径庭。于是许多人选择了“试错法”,然后他们的配置文件就时常被改得一片狼藉。这个系列的教程就旨在帮助读者逐步地理解这些配置指令背... 阅读全文
posted @ 2014-12-18 14:35 DoubleLi 阅读(4108) 评论(0) 推荐(0) 编辑

摘要:其实这两年为 Nginx 世界做了这么多的事情,一直想通过一系列教程性的文章把我的那些工作成果和所学所知都介绍给更多的朋友。现在终于下决心在新浪博客http://blog.sina.com.cn/openresty上面用中文写点东西,每一篇东西都会有一个小主题,但次序和组织上就不那么讲究了,毕竟并不... 阅读全文
posted @ 2014-12-18 14:34 DoubleLi 阅读(415) 评论(0) 推荐(0) 编辑

摘要:与$arg_XXX类似,我们在(二)中提到过的内建变量$cookie_XXX变量也会在名为XXX的 cookie 不存在时返回特殊值“没找到”:location/test{content_by_lua'ifngx.var.cookie_user==nilthenngx.say("cookieuser... 阅读全文
posted @ 2014-12-18 14:31 DoubleLi 阅读(373) 评论(0) 推荐(0) 编辑

摘要:在(一)中我们提到过,Nginx 变量的值只有一种类型,那就是字符串,但是变量也有可能压根就不存在有意义的值。没有值的变量也有两种特殊的值:一种是“不合法”(invalid),另一种是“没找到”(not found)。举例说来,当 Nginx 用户变量$foo创建了却未被赋值时,$foo的值便是“不... 阅读全文
posted @ 2014-12-18 14:29 DoubleLi 阅读(480) 评论(0) 推荐(0) 编辑

摘要:Nginx 内建变量用在“子请求”的上下文中时,其行为也会变得有些微妙。前面在(三)中我们已经知道,许多内建变量都不是简单的“存放值的容器”,它们一般会通过注册“存取处理程序”来表现得与众不同,而它们即使有存放值的容器,也只是用于缓存“存取处理程序”的计算结果。我们之前讨论过的$args变量正是通过... 阅读全文
posted @ 2014-12-18 14:26 DoubleLi 阅读(431) 评论(0) 推荐(0) 编辑

摘要:前面在(二)中我们已经了解到变量值容器的生命期是与请求绑定的,但是我当时有意避开了“请求”的正式定义。大家应当一直默认这里的“请求”都是指客户端发起的 HTTP 请求。其实在 Nginx 世界里有两种类型的“请求”,一种叫做“主请求”(main request),而另一种则叫做“子请求”(subre... 阅读全文
posted @ 2014-12-18 14:24 DoubleLi 阅读(485) 评论(0) 推荐(0) 编辑

摘要:在设置了“取处理程序”的情况下,Nginx 变量也可以选择将其值容器用作缓存,这样在多次读取变量的时候,就只需要调用“取处理程序”计算一次。我们下面就来看一个这样的例子:map$args$foo{default0;debug1;}server{listen8080;location/test{set... 阅读全文
posted @ 2014-12-18 14:23 DoubleLi 阅读(409) 评论(0) 推荐(0) 编辑

摘要:也有一些内建变量是支持改写的,其中一个例子是$args. 这个变量在读取时返回当前请求的 URL 参数串(即请求 URL 中问号后面的部分,如果有的话 ),而在赋值时可以直接修改参数串。我们来看一个例子:location/test{set$orig_args$args;set$args"a=3&b=... 阅读全文
posted @ 2014-12-18 14:21 DoubleLi 阅读(448) 评论(0) 推荐(0) 编辑

摘要:关于 Nginx 变量的另一个常见误区是认为变量容器的生命期,是与location配置块绑定的。其实不然。我们来看一个涉及“内部跳转”的例子:server{listen8080;location/foo{set$ahello;echo_exec/bar;}location/bar{echo"a=[$... 阅读全文
posted @ 2014-12-18 14:20 DoubleLi 阅读(1682) 评论(0) 推荐(0) 编辑

摘要:Nginx 的配置文件使用的就是一门微型的编程语言,许多真实世界里的 Nginx 配置文件其实就是一个一个的小程序。当然,是不是“图灵完全的”暂且不论,至少据我观察,它在设计上受 Perl 和 Bourne Shell 这两种语言的影响很大。在这一点上,相比 Apache 和 Lighttpd 等其... 阅读全文
posted @ 2014-12-18 14:18 DoubleLi 阅读(2173) 评论(0) 推荐(0) 编辑

摘要:1. Nginx 介绍Nginx是俄罗斯人编写的十分轻量级的HTTP服务器,它的发音为“engine X”, 是一个高性能的HTTP和反向代理服务器,同时也是一个IMAP/POP3/SMTP 代理服务器.Nginx是由俄罗斯人 Igor Sysoev为俄罗斯访问量第二的 Rambler.ru站点开发... 阅读全文
posted @ 2014-12-18 13:39 DoubleLi 阅读(478) 评论(0) 推荐(0) 编辑

上一页 1 2 3 4 5 6 7 下一页