当前位置:首页 > 开发 > 开源软件 > 正文

nginx lua开发经验总结

发表于: 2015-07-03   作者:ronin47   来源:转载   浏览:
摘要: 使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下 1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long pa

使用nginx lua已经两三个月了,项目接开发完毕了,这几天准备上线并且跟高德地图对接。回顾下来lua在项目中占得必中还是比较大的,跟PHP的占比差不多持平了,因此在开发中遇到一些问题备忘一下

1:content_by_lua中代码容量有限制,一般不要写太多代码,正常编写代码一般在100行左右(具体容量没有细心测哈哈,在4kb左右),如果超出了则重启nginx的时候会报 too long parameters
2:如果引入lua脚本文件也得控制一下lua脚本中函数里面代码的容量,不要太多呵呵
3:编写lua代码时一定得健壮,不然nginx虽然可以重启但是经常会导致500错误,比如参数的判断,使用一些未定义的变量(当然lua中是可以的,但是现在是在nginx环境中,情况有些不一样)
4:nginx_lua中不支持使用" ..."的不限制参数模式的函数参数
5: content_by_lua中的代码一定要注意单引号或者双引号,引号和 content_by_lua之间要有空格

6:在content_by_lua中如果使用正则(string.match,string.gmatch)的时候如果content_by_lua后面用如果单引号引起来lua代码的话,正则里面单引号要用"\"进行转移而不是"%"转义符

以上描述可能绕口,直接贴代码

  content_by_lua '
 local res = ngx.location.capture("/pass_get",{

...

local ids = string.gmatch( h,"show_surveil_detail%S\'(%d+)\',\'(%d+)\',\'0\'%S" );

';

7:在nginx_lua中nil的变量跟数字相加是不允许的,nginx会报500错误的.

8:经常在写lua脚本的时候有时nginx的reload不起作用,导致新写的nginx配置不生效,可以在reload之前 nginx -t检查一下看那里报错

9:在使用共享内存api的时候一定要注意如:使用lua_shared_dict、ngx.shared.DICT的时候最好不要使用get_keys,否则指不定那次获取比较多的数据的时候共享内存被锁定,严重时可能导致nginx阻塞

10:在ngx_lua中数字类型跟字符类型的数字进行运算时会报错的,必须将两者都统一成数字类型的,如
local a=123;local b="333";
a+b(错误)
a+(b+0)这样就可以了
字符类型的数字加上0可以转换成数字类型的

nginx lua开发经验总结

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
关于spdy 摘自 http://zh.wikipedia.org/wiki/SPDY SPDY SPDY是Google开发的基于传输控制协议(TCP
——第二届 Google 暑期大学生博客分享大赛 - 2011 Android 成长篇 最近一直在开发android上的应用
搞了一年的iOS开发了,希望在这里记录一些设计师和开发者配合方面的一些经验 主要也是记录图片使用和
1、系统没有识别出target,无法安装驱动: 解决方案:请硬件部配合一起查明原因 2、UART1 和 UART4
<欢迎大家加入iOS开发学习交流群:QQ529560119> 看到一个新的界面,要细细划分区域,应该怎么
相遇是件难得的事情,在一起更不简单,但是nginx和lua就是成功的结合起来。文本将以演进式方式与大
最近很多人问我nginx lua的优势是什么?为什么? 一、同步和异步、阻塞和非阻塞 如果要说清楚这个问
agentzh tech-club.org 演讲听录 活动: Tech-Club技术沙龙(2012年2月)活动小结 幻灯: ngx_openres
有牛人将 Eclipse RCP & RAP 开发经验有序地分享出来, http://jlins.iteye.com/blogs/subjects/ecli
有牛人将 Eclipse RCP & RAP 开发经验有序地分享出来, http://jlins.iteye.com/blogs/subjects/ecli
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号