依剑听雨 发表于 2016-6-30 10:47:27

如何把Nginx 换成 OpenResty ?

无耻地修改了下 nginx的升级脚本,结果发现还是不行。版本号请输入 1.9.15.1
结果前面都通过了到了这个地方:
\cp objs/nginx /usr/local/nginx/sbin/nginx提示文件不存在
然后

make upgrade 提示没有 upgrade

hvbirder 发表于 2016-6-30 15:59:55

直接用openresty的一键包

licess 发表于 2016-6-30 17:17:55

不清楚,没具体接触测试过openresty

依剑听雨 发表于 2016-6-30 20:01:02

回复 3# 的帖子

主要是想用lua ,nginx编译出问题~~
据说 openresty加入了nginx Puls的一些特性

licess 发表于 2016-7-1 08:46:34

安装lua很简单cd /root
wget -c http://luajit.org/download/LuaJIT-2.0.4.tar.gz
tar zxf LuaJIT-2.0.4.tar.gz
cd LuaJIT-2.0.4
make
make install PREFIX=/usr/local/luajit
cd ..

wget -c https://github.com/openresty/lua-nginx-module/archive/v0.10.5.tar.gz
tar zxf v0.10.5.tar.gz

wget -c https://github.com/simpl/ngx_devel_kit/archive/v0.3.0.tar.gz
tar zxf v0.3.0.tar.gz

export LUAJIT_LIB=/usr/local/luajit/lib
export LUAJIT_INC=/usr/local/luajit/include/luajit-2.0

cat > /etc/ld.so.conf.d/luajit.conf<<EOF
/usr/local/luajit/lib
EOF

ldconfiglnmp.conf里Nginx_Modules_Options 加上 --with-ld-opt=-Wl,-rpath,/usr/local/luajit/lib --add-module=/root/lua-nginx-module-0.10.5 --add-module=/root/ngx_devel_kit-0.3.0


重新升级一下nginx就行了


测试lualocation /lua {
      default_type 'text/html';
      content_by_lua 'ngx.say("hello world")';
}

依剑听雨 发表于 2016-7-1 12:55:41

回复 5# 的帖子

啊啊啊啊太感谢了折腾了我三天了!!!!
崇拜~~~

依剑听雨 发表于 2016-7-1 14:01:00

回复 5# 的帖子

在nginx .conf加入:
http{ ...
limit_req_zone $cookie_token zone=session_limit:3m rate=1r/s;
limit_req_zone $binary_remote_addr $uri zone=auth_limit:3m rate=1r/m;
}


location /{ limit_req zone=session_limit burst=5; rewrite_by_lua '
    local random = ngx.var.cookie_random
    if (random == nil) then
      return ngx.redirect("/auth?url=" .. ngx.var.request_uri)
    end
    local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
    if (ngx.var.cookie_token ~= token) then
      return ngx.redirect("/auth?url=".. ngx.var.request_uri)
    end
'; } location /auth { limit_req zone=auth_limit burst=1; if ($arg_url = "") { return 403; } access_by_lua '
      local random = math.random(9999)
      local token = ngx.md5("opencdn" .. ngx.var.remote_addr .. random)
      if (ngx.var.cookie_token ~= token) then
      ngx.header["Set-Cookie"] = {"token=" .. token, "random=" .. random}
      return ngx.redirect(ngx.var.arg_url)
      end
    '; }
我想大家也应该已经猜到,这段配置文件的原理就是:把本来的发token的功能分离到一个auth页面,然后用limit对这个auth页面进行频率限制即可。这边的频率是1个IP每分钟授权1个token。当然,这个数量可以根据业务需要进行调整。

需要注意的是,这个auth部分我lua采用的是access_by_lua,原因在于limit模块是在rewrite阶段后执行的.




------------------------------------------------------------------------------------------------------------------------------
Starting nginx... nginx: invalid number of arguments in "limit_req_zone" directive in /usr/local/nginx/conf/nginx.conf:57
重启nginx 后报这个错误(nginx 1.10.1)

[ 本帖最后由 依剑听雨 于 2016-7-1 14:02 编辑 ]

licess 发表于 2016-7-1 15:04:40

回复 7# 的帖子

nginx的limit_req模块只能有一个变量

明月登楼 发表于 2017-5-4 18:19:08

回复 5# 的帖子

make: *** Error 1
make: Leaving directory '/root/lnmp1.4/src/nginx-1.13.0'
Makefile:8: recipe for target 'build' failed
make: *** Error 2
cp: cannot stat ‘objs/nginx’: No such file or directory
Test nginx configure file...
include/upgrade_nginx.sh: line 59: /usr/local/nginx/sbin/nginx: No such file or directory
upgrade...
/usr/local/nginx/sbin/nginx -t
make: /usr/local/nginx/sbin/nginx: Command not found
Makefile:17: recipe for target 'upgrade' failed
make: *** Error 127
Checking ...
Error: Nginx upgrade failed.

照着这个教程升级Nginx依然是这个错误!

licess 发表于 2017-5-4 21:49:33

回复 9# 的帖子

教程没有问题,看不到具体错误没法说,也可能你操作步骤上有问题或有其他问题
无法解决可以联系qq或旺旺付费安装

sunny123456 发表于 2021-8-12 09:10:02

licess 发表于 2017-5-4 21:49
教程没有问题,看不到具体错误没法说,也可能你操作步骤上有问题或有其他问题
无法解决可以联系qq或旺旺付 ...

在哪里可以看到比方说 nginx 1.6 用 LuaJIT-2.0.4,nginx 1.7 用其他的包?就是他们的对应关系
页: [1]
查看完整版本: 如何把Nginx 换成 OpenResty ?