0

3346

lua_nginx_module常见使用文档

乐果   发表于   2017 年 09 月 29 日

安装lua_nginx_module 模块

lua_nginx_module 可以一步步的安装,也可以直接用淘宝的OpenResty

Centos和debian的安装就简单了。。

这里说下freebsd的安装:

fetch http://www.lua.org/ftp/lua-5.1.4.tar.gz
tar zxvf lua-5.1.4.tar.gz
cd lua-5.1.4
make freebsd
make install
cd ..
fetch https://github.com/chaoslawful/lua-nginx-module/zipball/v0.1.6rc2
fetch https://github.com/simpl/ngx_devel_kit/zipball/v0.2.17rc2
tar zxvf v0.1.6rc2
mv chaoslawful-lua-nginx-module-ccaf132 lua_nginx_module
tar zxvf v0.2.17rc2
mv simpl-ngx_devel_kit-bc97eea ngx_devel_kit
tar zxvf pcre-8.12.tar.gz
tar zxvf nginx-1.0.3.tar.gz
cd nginx-1.0.3
./configure --prefix=/data/soft/nginx --with-pcre=../pcre-8.12 --add-module=../ngx_devel_kit --add-module=../lua_nginx_module
make && make install

安装完成后,我们体验一下lua

第一个lua脚本

ngx.say 是打印的打印输出的意思。。。

location /echo {
    default_type text/plain;
    echo hello lua;
}
location /lua {
    default_type text/plain;
    content_by_lua 'ngx.say("hello world")';
}

用lua脚本做nginx的访问的限制…

……

标签:luanginx 继续阅读

0

3091

mac笔记本basicipv6validationerror

乐果   发表于   2017 年 09 月 15 日

mac笔记本在设置网卡ip的时候经常报basicipv6validationerror

ip6在搞怪,但是发现界面没有关闭ip6协议的功能啊,百度了一下,只能来命令行了:

  xiao@xiaodeMacBook-Pro ~ % networksetup -listallnetworkservices
  An asterisk (*) denotes that a network service is disabled.
  Bluetooth PAN
  Thunderbolt Bridge
  Thunderbolt Ethernet
  Wi-Fi
  iPhone USB          
  xiao@xiaodeMacBook-Pro ~ % sudo networksetup -setv6off "Thunderbolt Ethernet" 

还是命令行管用!

……

标签:mac 继续阅读

0

4097

linux系统计划任务crontab笔记

乐果   发表于   2017 年 09 月 13 日

一、cron.d增加定时任务

当我们要增加全局性的计划任务时,一种方式是直接修改/etc/crontab。但是,一般不建议这样做,/etc/cron.d目录就是为了解决这种问题而创建的。

例如,增加一项定时的备份任务,我们可以这样处理:在/etc/cron.d目录下新建文件backup.sh,内容如下:

# m h dom mon dow user command

* 1 * * * root /sbin/mon_zetc_logtar.sh

cron进程执行时,就会自动扫描该目录下的所有文件,按照文件中的时间设定执行后面的命令。

cron执行时,也就是要读取三个地方的配置文件:

一是/etc/crontab,二是/etc/cron.d目录下的所有文件,三是每个用户的配置文件

二、控制对 cron 的使用

/etc/cron.allow 和 /etc/cron.deny 文件被用来限制对 cron 的使用。这两个使用控制文件的格式都是每行一个用户。两个文件都不允许空格。如果使用控制文件被修改了,cron 守护进程(crond)不必被重启。使用控制文件在每次用户添加或删除一项 cron 任务时都会被读取。

……

标签:linux 继续阅读

0

5498

nginx+lua+openresty动态二维码生成方案

乐果   发表于   2017 年 09 月 13 日

最近,公司系统与阿里体育对接,在门票业务上我们需要返回二维码图片给对方(可能线下过闸机识别的需要),有几个方案可以选择,公司后端技术栈都集中在php,但用php动态生成效率不高,于是考虑用golang,网上也有一些类库包:github.com/skip2/go-qrcode,但后来发现有人用nginx扩展即实现了,所以我决定也尝试下,顺便熟悉下lua、openresty。

一、安装nginx_lua_module以及echo-nginx-module

Ngx_lua手动编译进Nginx。

首先,我的 Nginx 安装路径为:/usr/local/nginx。

我将尝试编译的两个模块:echo,lua。

所需要的模块如下:

luajit             http://luajit.org 
lua                http://www.lua.org 
ngx_devel_kit      https://github.com/simpl/ngx_devel_kit 
echo-nginx-module  https://github.com/agentzh/echo-nginx-module 
lua-nginx-module   https://github.com/chaoslawful/lua-nginx-module  

前期准备工作

1、安装nginx,版本必须大于1.6,如果已经安装了nginx,则需要重新编译安装下,把conf备份下。

……

标签:nginxlua 继续阅读

0

5547

golang对map未带锁的读写,并发情况下导致致命错误

乐果   发表于   2017 年 08 月 28 日

对于智能硬件云端服务,用golang来写服务端非常适合。

公司因系统对接智能灯控,本人写了一个服务,经过几个月的生产环境验证已稳定运行了很久, 但上周末,服务突然挂了。查看日志,锁定一段致命错误提示:concurrent map iteration and map write

如下截图:

……

标签:golang 继续阅读

较旧的笔记 较新的笔记