nginx
文章平均质量分 69
IamLsz
专注服务端及数据。
展开
-
nginx lua模块常用的指令
nginx lua模块常用的指令原创 2014-12-31 17:29:55 · 17100 阅读 · 0 评论 -
RestFul 采用nginx作为请求审计记录工具
RestFul作为通用的json+http传输请求的规范,越来越多的api采用此形式进行交互。不可避免的,需要对其请求的内容进行审计。然而RestFul的Post请求一般采用以下的方式进行请求。curl -H "Content-Type: application/json" -d '{"key":"value"}' http://localhost:8000/hello 这一形式,是将原创 2016-10-28 13:58:53 · 2518 阅读 · 0 评论 -
nginx模块开发-增加nginx内置变量
众所周知,nginx中set $xxx 'hello';就是通过用set指令给变量xxx设置hello的字符串值,在nginx中调用值的话,只需要$xxx就可以使用这个变量。 然而在nginx中,我们还可以直接用下面的变量,直接就可以获取对应的值。$arg_参数名 在location中获取客户端请求的参数xx?name=123 那$arg_name就是对应的值123$args原创 2016-01-15 11:46:18 · 8207 阅读 · 0 评论 -
IE浏览器在地址栏针对param直接输入中文导致乱码的解决方案
这篇文章算是对我前几年在做搜索引擎项目时候无法解决的一个问题画一个句号吧,用处不大,不过可以弥补下自己的一个遗憾。 当时的场景是这样子的,本来正常人的习惯总是在搜索框输入正常搜索词然后进行搜索,但是总有一些用户会自认为聪明的,从地址栏复制出URL,然后改parameter然后进行访问,类似于http://www.xxx.com/search?keyword =%E4%B8%AD%E6%9原创 2016-01-23 03:46:47 · 8560 阅读 · 0 评论 -
nginx模块开发-在handle函数中获取页面请求的参数
可以用下列的函数:ngx_int_tngx_http_arg(ngx_http_request_t *r, u_char *name, size_t len, ngx_str_t *value)具体的实例如下:ngx_http_xxx_handle( ngx_http_request_t *r, ngx_str_t *callback) if (原创 2016-01-02 14:23:10 · 2496 阅读 · 0 评论 -
windows下采用eclipse与cygwin构建调试nginx插件
nginx在windows下用vc或者是mingw会存在或多或少的问题,它天然适合在linux下开发使用,但是想在windows进行开发使用的话,最好的方式就是采用cygwin进行linux环境的模拟,开发工具的话,可以选用eclipse CDT进行开发调试。 首先要安装cygwin(注意看网站,有国内的源的话,下载起来飞快),cygwin对于编译nginx来说的话,只需要在instal原创 2015-12-31 16:29:22 · 3293 阅读 · 2 评论 -
nginx_lua案例分析:动态路由实现
这里的路由指的是在web开发中,访问路径以及具体实现内容的映射。比如,/a映射到某个具体的页面,这个就称之为一个路由。而动态路由,顾名思义就是动态添加这种路由映射关系。 在nginx中,通过rewrite和proxy_pass来实现路由映射或者说反向代理,但是这种关系按照传统的配置必须写死在配置文件中,然后通过快速"无缝"重启nginx。虽说是无缝,但是其繁琐的配置和枯燥的重启操作还是无原创 2015-08-17 09:28:07 · 9952 阅读 · 1 评论 -
nginx proxy-pass简单的应用
proxy-pass在网站部署访问中,最经常与rewrite一起用。一般用rewrite进行url的内部重写(地址栏不会改变),然后再通过proxy-pass将请求代理访问后端的web应用。location ^~ /doc/img/ { rewrite "^/doc/img/(.*)$" /$1 break; proxy_pass http://192.168.1.130:80;原创 2015-07-28 08:40:04 · 2093 阅读 · 0 评论 -
nginx嵌入lua脚本操作redis
此前稍微提过,用nginx里面执行lua脚本,可以执行一些原有无法实现的必须到后端去控制。目前有个需求,是根据不同的传入id,判断其类型,反向代理到不同的项目后端,如果是采用后端来做的话,基本上很难去实现,然而我们在前端用lua去判断ID的类型就OK了,为了保证前端nginx的速度,所以将id的类型存入redis中,由lua去读取redis的数据进行id类型判断。 目前,用在nginx中原创 2015-05-22 09:41:15 · 3108 阅读 · 0 评论 -
在nginx中采用lua对请求的url进行hash取模
目前有一个需求,是需要将nginx反向代理的后端响应的内容进行缓存,并且要平均的分配到10个自定义的目录中。一说到,自动分配的需求,采用hash取模是最常用也是最简单的方案,其中选择hash的字段(内容)必须是变化最多的。比如请求头里面的host和request_url,肯定选择是request_url,因为其变化的内容比较大。 查看了nginx的官网文档也没有单独对url进行取模的功能原创 2015-03-30 15:28:15 · 7787 阅读 · 1 评论 -
nginx的lua开发环境搭建
虽然说,分层的软件开发对于维护性和开发性都有很好的帮助,但是有些情况下,又不得不为了性能耦合在一起,比如nginx很容易做一些http层面的东西,比如缓存、图片处理、反向代理之类的,但是,如果要验证用户权限之类,和业务相互耦合的情况,其实用nginx+lua的方案挺好的。所以,也趁着目前有时间,准备花点时间学一下nginx+lua的开发,同时还有一些应用场景。原创 2014-12-30 14:56:23 · 3125 阅读 · 0 评论 -
nginx lua api翻译
nginx的lua模块提供了很多lua的函数API给用户使用,以便让lua更好的操作nginx.原创 2015-01-20 11:27:35 · 6263 阅读 · 0 评论 -
关于nginx的ngx_http_image_filter_module裁剪图片后方向改变的解决方案
使用nginx的ngx_http_image_filter_module进行图片裁剪的方案是图片裁剪一个非常常见的方案,最近提供给app端的图片,需要在部分进行展示的地方进行图片裁剪再加载,以减少图片的加载流量(原图的尺寸非常大)。然而在进行resize的操作之后,却发现图片被调转了方向,这让我很疑惑,因为我并没有进行rotate的操作。 在看了下模块的代码,发现,如果只是简单的resi原创 2016-12-03 13:03:58 · 3336 阅读 · 1 评论