
Nginx
雪峰流云
以技术为乐的程序猿!
展开
-
不能忽略的Nginx做web服务器的favicon.ico图像找不到问题
我们在使用Nginx搭建HTTP的web server的过程中,一般都很顺利,默认的网站根目录一般是/usr/local/nginx/html,我们也可以正常访问到Nginx的欢迎信息,比如使用下面的网址:http://localhost/但是发现运行一段时间后,Nginx的error日志中会定期抱怨说,没有找到favicon.ico文件?发生这种错误的原因一般是Nginx在根目录上找原创 2014-03-25 11:06:59 · 53777 阅读 · 1 评论 -
在CentOS 6.9 x86_64上开启nginx 1.12.2的proxy_cache缓存配置
本文研究nginx提供的缓存功能,下面是实操记录。这篇博文基于前面文章的基础上搭建,至始至终都是root用户操作http://blog.youkuaiyun.com/tao_627/article/details/78953800缓存清除功能需要借助第三方模块ngx_cache_purge,其链接如下https://github.com/FRiCKLE/ngx_cache_purge原创 2018-01-03 16:14:33 · 801 阅读 · 0 评论 -
在CentOS 6.9 x86_64搭建Lua开发环境
安装依赖库yum -y install readline-dev readline-devel下面源码编译lua时需要用到安装lua-5.1.5wget http://www.lua.org/ftp/lua-5.1.5.tar.tar zxvf lua-5.1.5.tar.gzcd lua-5.1.5make linux testmake install原创 2017-12-28 18:52:13 · 1152 阅读 · 0 评论 -
在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_http_empty_gif_module模块实录
ngx_http_empty_gif_module是nginx自带的标准模块,它只返回一个保存在内存中的透明像素的GIF图片(速度当然比硬盘上读取的速度快很多),多用于传递统计参数,用在location上下文中。该模块默认就是开启的。配置location ~ /test_[0-9].gif { empty_gif;}location ~* /3145/ {原创 2018-01-04 15:24:24 · 788 阅读 · 0 评论 -
在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_req_status模块实录
ngx_req_status是一个第三方模块,它用来展示nginx请求状态信息,类似于apache的status,ats的stats_over_http和channel_stats,nginx自带的模块只能显示连接数等等信息,我们并不能知道到底有哪些请求、以及各url域名所消耗的带宽是多少。ngx_req_status提供了这些功能:功能特性按域名、url、ip等等统计信息统计总流原创 2018-01-04 15:08:11 · 2224 阅读 · 0 评论 -
在CentOS 6.9 x86_64的OpenResty 1.13.6.1上使用LuaRocks示例
下面是我阅读春哥OpenResty官网主页中“Using LuaRocks”一节的实操记录,整理如下。https://openresty.org/cn/using-luarocks.html1.在CentOS 6.9 x86_64搭建Lua开发环境详细过程参见本博博文http://blog.youkuaiyun.com/tao_627/article/details/7892521原创 2017-12-29 16:08:41 · 882 阅读 · 0 评论 -
在CentOS 6.9 x86_64上安装redis 4.0.6
1.安装依赖yum install -y wget gcc make tcl2.下载源码并安装进入redis官网https://redis.io/download/下载最新版wget http://download.redis.io/releases/redis-4.0.6.tar.gztar xzf redis-4.0.6.tar.gzcd redis-4.0.6原创 2017-12-30 11:05:08 · 748 阅读 · 0 评论 -
在CentOS 6.9 x86_64的nginx 1.12.2上开启ngx_http_geo_module模块实录
ngx_http_geo_module模块,默认情况下,nginx会加载,除非人为的 --without-http_geo_module。这个模块提供了一个非常好用的geo指令,可以用它来创建变量,诞生其值依赖于客户端IP地址。ngx_http_geo_module模块官网地址http://nginx.org/en/docs/http/ngx_http_geo_module.h原创 2018-01-05 13:08:43 · 780 阅读 · 0 评论 -
在CentOS 6.9 x86_64的nginx 1.12.2上安装第三方模块set-misc-nginx-module实录
set-misc-nginx-module模块是标准的HttpRewriteModule指令的扩展,提供更多的功能,如URI转义与非转义、JSON引述、Hexadecimal/MD5/SHA1/Base32/Base64编码与解码、随机数等等。在后面的应用中,都将会接触使用到这个模块的。该模块是由章亦春先生开发的,他开发的其他模块应用也会使用到这个模块的。充分使用nginx非阻塞模式,对性能上有极原创 2018-01-06 20:17:25 · 2109 阅读 · 0 评论 -
在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_map_module实录
介绍默认情况下,nginx会加载标准模块ngx_http_map_module(或称ngx_map),除非人为的在configure时添加--without-http_map_module选项。ngx_http_map_module模块可以创建变量,这些变量的值与另外的变量值相关联。允许分类或者同时映射多个值到多个不同值并储存到一个变量中,map指令用来创建变量,但是仅在变量被读取的时候执原创 2018-01-07 16:39:03 · 1328 阅读 · 0 评论 -
在CentOS 6.9 x86_64上安装nginx 1.12.2
比较详细的教程参见以前的博文http://blog.youkuaiyun.com/tao_627/article/details/60957521这里只给出简略步骤,没有截图,自始至终使用root操作目前最新的源码地址ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.41.tar.gzhttp://www.zlib原创 2018-01-02 17:24:53 · 1425 阅读 · 0 评论 -
在CentOS 6.9 x86_64的nginx 1.12.2上开启标准模块ngx_http_auth_request_module实录
ngx_http_auth_request_module是是nginx的一个验证模块,它允许您的nginx通过发送请求到后端服务器(一般是应用服务器,例如tomcat,或者php等)进行请求, 并且根据请求决定是验证通过或者不通过。后端返回200 验证通过, 后端返回401或者403验证不通过。该模块默认可以开启,可以在configure时使用--with-http_auth_reques原创 2018-01-07 19:58:32 · 4081 阅读 · 0 评论 -
在CentOS 6.9 x86_64的nginx 1.12.2上开启echo-nginx-module模块实录
echo-nginx-module是一个第三方模块,在nginx源码中没有,但是OpenResty中有,它为nginx.conf带来了echo,sleep,time等多个类似bash的强大命令。目前最新版本是v0.61安装指南参见https://github.com/openresty/echo-nginx-module#installation配置 se原创 2018-01-05 09:38:34 · 729 阅读 · 0 评论 -
OpenResty中的upstream healthcheck功能沉思录
综述healthcheck功能本质上还是个定时器,去定期检查指定upstream组的状态,它发送指定的http请求并解析响应码,去探测upstream中每个peer的存活状态,再结合历史请求记录来判断并标记其状态,如果有状态改变,就在共享内存中更新版本记录,下次执行时,所有的worker进程都要更新到最新的peer状态。下面的表述都假定我们要监控的upstream组名是ats_node_backe...原创 2018-02-09 15:27:32 · 9009 阅读 · 3 评论 -
在CentOS 6.9 x86_64上玩转OpenResty 1.13.6.1中的resty-cli模块
resty-cli是OpenResty中命令行工具的集合,其中resty工具是最有用的。安装好OpenResty之后,resty-cli就会默认安装,以我的安装为例,参见博文http://blog.youkuaiyun.com/tao_627/article/details/78912545它的位置在/opt/openresty/bin下面配置环境变量vim /etc/原创 2017-12-28 11:37:50 · 941 阅读 · 0 评论 -
OpenResty中遇到"Can't locate Time/HiRes.pm in @INC"问题的解决方法
今天在研究resty这个命令行工具时,执行resty -h出现下面的报错Can't locate Time/HiRes.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl原创 2017-12-28 10:35:38 · 2724 阅读 · 0 评论 -
在Ubuntu 14.04 64bit上安装OpenResty 1.9.7.4
为了自己的ThinkPad T420上面的Ubuntu可以使用openresty开发,我特地记录一下安装过程:安装依赖包apt-get install libreadline-dev libncurses5-dev libpcre3-dev libssl-dev perl make build-essential下载源码并编译安装wget https://openresty.org原创 2016-05-27 15:31:11 · 1890 阅读 · 0 评论 -
在CentOS 6.3 64bit上安装Nginx 1.8.0
根据工作需要,现在需要安装nginx服务器,本来可以直接安装别人制作好的rpm包的,但是本着爱折腾和时刻尝鲜的精神,我决定从官网下载最新的nginx源码来安装,下面记录了我的安装过程。下面的安装假定是有root用户登录并执行1.安装依赖库这些依赖库主要有g++、gcc、openssl-devel、pcre-devel和zlib-devel yum -y install make g原创 2015-04-24 17:38:44 · 5894 阅读 · 2 评论 -
利用lua中的string.gsub来巧妙实现json中字段的正则替换
业务需求工作中需要对某个请求的json响应中的某个字段进行替换, 通常想到的方法是,先使用lua的cjson模块解析该json响应, 取出该json字段再该改写它的值.在这样实现的过程中,遇到一些问题,表现如下:(1).上面的方法需要经过json解码, 修改字段值, json编码的过程, 在json编码过程中, 会将完整的url进行转义,比如http://101.227.23.53原创 2016-05-30 14:27:29 · 6384 阅读 · 0 评论 -
OpenResty上各种测试用例实操(1)
下面记录了我阅读《OpenResty最佳实践》过程中对一些例子的实践操作示例,记录以作备忘。一.Location的组合使用原创 2016-05-22 17:31:38 · 2438 阅读 · 0 评论 -
实现第一个自定义nginx模块
实现第一个自定义nginx模块下面的过程详细记录了如何实现第一个自定义的nginx模块,对nginx入门者包括我很有参考价值,特记录如下。前提假定以root身份已经在CentOS 6.8 x86上创建第三方子模块所在目录mkdir -p /usr/local/src/nginx_modules_demo/ngx_http_mytest_module在里面放入如下原创 2017-03-09 12:26:38 · 3345 阅读 · 0 评论 -
在CentOS 6.8 x86_64的nginx 1.10.3上开启http2功能
在原有基础上修改编译选项回见http://blog.youkuaiyun.com/tao_627/article/details/60957521在nginx源码目录下的configure选项中加入--with-http_v2_module,由于HTTP2需要SSL的支持,因此如缺少--with-http_ssl_module选项,还需要加入--with-http_ssl_module。如下:原创 2017-08-16 19:29:37 · 840 阅读 · 0 评论 -
在CentOS 6.8 x86_64上安装nginx 1.10.3
本文档记录了完全使用最新源码来编译安装nginx最新版1.10.3,所有的依赖也是最新的,便于第三方nginx模块开发假定使用root身份安装目前最新的源码地址汇总ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.40.tar.gzhttp://www.zlib.net/zlib-1.2.11.tar.gz原创 2017-03-09 12:04:21 · 2130 阅读 · 0 评论 -
在Ubuntu 16.04.1 LTS上测试Linux AIO功能实录
我们知道nginx中有libaio这项功能,为了研究AIO的一些常用接口用法,在网上找到一个例子,异步IO读取本地文件,亲自实践了一把,记录如下:安装依赖库在Ubuntu 16.04上需要事先安装apt-cache search aiosudo apt-get install libaio1 libaio-dev如果是CentOS,需要执行下面的命令原创 2017-08-31 19:16:08 · 1164 阅读 · 0 评论 -
在CentOS 6.9 x86_64的OpenResty 1.13.6.1上使用基于Redis实现动态路由示例
下面是我阅读春哥OpenResty官网主页中“Dynamic Routing Based On Redis”一节的实操记录,整理如下。https://openresty.org/cn/dynamic-routing-based-on-redis.html这个例子展示了利用Redis将进来的请求,依据User-Agent头的不同,路由到不同的后端HTTP服务器上面。这个demo将原创 2017-12-29 17:14:22 · 668 阅读 · 0 评论 -
OpenResty学习中的几个小例子汇总
1.测试lua或是LuaJIT的版本号如果使用的是标准 Lua,访问 /lua-version 应当返回响应体 Lua 5.1如果是 LuaJIT 则应当返回类似 LuaJIT 2.0.2 这样的输出。不要使用标准lua,应当使用luajit, 后者的效率比前者高多了。在nginx.conf中的server中添加一个location。location = /test {lo原创 2017-12-31 16:23:05 · 1682 阅读 · 0 评论 -
在CentOS 6.6上搭建OpenResty 1.9.7.4并输出示例
下面是我在阅读《OpenResty最佳实践》时的实践细节,特此记录一下。这是一份值得反复阅读且十分宝贵的资料,感谢360的开源!简介OpenResty(又称:ngx_openresty) 是一个基于 NGINX 的可伸缩的 Web 平台,由中国人章亦春发起,提供了很多高质量的第三方模块。OpenResty 是一个强大的 Web 应用服务器,Web 开发人员可以使用 Lua 脚本原创 2016-05-22 11:53:35 · 4412 阅读 · 0 评论 -
在CentOS 6.9 x86_64上搭建全功能的OpenResty 1.13.6.1笔记
好久没有玩OpenResty,这段时间机会难得,赶紧实践一下。下面是我在rMBP的CentOS 6.9 x86_64虚拟机上安装目前最新版OpenResty 1.13.6.1的笔记。OpenResty的下载地址是https://openresty.org/cn/download.html下面按照步骤说明如下:1.安装依赖包yum -y install readlin原创 2017-12-27 15:14:00 · 2608 阅读 · 0 评论 -
在CentOS 6.9 x86_64上开启nginx 1.12.2的stub_status模块(ngx_http_stub_status_module)监控
Nginx中的stub_status模块主要用于查看Nginx的一些状态信息. 本模块默认是不会编译进Nginx的,如果你要使用该模块,则要在编译安装Nginx时指定:./configure --with-http_stub_status_module 基础的nginx搭建参见本博博文http://blog.youkuaiyun.com/tao_627/article/details/78原创 2018-01-03 10:25:56 · 928 阅读 · 0 评论 -
lua中正则表达式的坑
我在使用OpenResty编写lua代码时,需要使用到lua的正则表达式,其中pattern是这样的,--热水器设置时间local s = '12:33'local pattern = "(20|21|22|23|[01][0-9]):([0-5][0-9])"local matched = string.match(s, "(20|21|22|23|[01][0-9]):([0-5][0-...原创 2018-05-22 20:18:24 · 3735 阅读 · 0 评论