Nginx Lua中的小陷阱

在 一 11 三月 2019 发布于 TECH SKILLS 分类 • 标签为 Openresty, Nginx, Lua • 1 min read

在日常的lua脚本调试中,我们通常会用ngx.say或者ngx.print来打印信息,但是要注意了,当你在ngx.redirect前面使用这两个方法时,就会报错哦

lua entry thread aborted: runtime error: attempt to call ngx.redirect after sending out the headers

但是用ngx.log方法一般是没有问题的


另外这里再记录一下,lua中的split实现方法,下面这个方法够简洁

string.split = function(s, p)

    local rt= {}
    string.gsub(s, '[^'..p..']+', function(w) table.insert(rt, w) end )
    return rt

end …

阅读全文

Nginx反向代理配置

在 三 19 十二月 2018 发布于 TECH SKILLS 分类 • 标签为 nginx, reverse, proxy, 反向代理 • 1 min read

这里主要记录Nginx服务器的反向代理proxy_pass配置方法中容易踩坑的地方,就是经常被提到的url的/问题的相关说明,需要的朋友可以参考下

普通反向代理

Nginx的普通的反向代理配置还是比较简单的,如:

location ~ /*
{
    proxy_pass http://192.168.1.12:8080;
}

或者可以

location /
{
    proxy_pass http://192.168.1.12:8080;
}

如果要配置一个相对复杂的反向代理,比如,将url中以/test/开头的请求转发到后台对应的某台server上
可以在Nginx里设置一个变量,来临时保存/test/后面的路径信息

location ^~ /test/
{
    if ($request_uri ~ /test/(\d+)/(.+))
    {
        set $id $1;
        set $params $2;
    }
    proxy_pass http://backend$id.domain …

阅读全文