永发信息网

nginx + lua 有没有办法获取到 upstream 中某个上游挂了的信息

答案:2  悬赏:70  手机版
解决时间 2021-11-09 10:49
  • 提问者网友:你挡着我发光了
  • 2021-11-08 15:42
nginx + lua 有没有办法获取到 upstream 中某个上游挂了的信息
最佳答案
  • 五星知识达人网友:夜余生
  • 2021-11-08 17:03
用以下代码测试确定在 log_by_lua 阶段确实可以读取到正确的 $upstream_addr 和 $upstream_status:

upstream {
server 127.0.0.1:1234;
server 127.0.0.2:1235;
}

server {
location / {
log_by_lua_block {
ngx.log(ngx.ERR, ngx.var.upstream_addr)
ngx.log(ngx.ERR, ngx.var.upstream_status)
-- code to update your upstream status database
}
}
}
全部回答
  • 1楼网友:鱼忧
  • 2021-11-08 18:07
1下载luajit2.0并安装我是直接使用源码make&&makeinstall所以lib和include是直接放在/usr/local/lib和usr/local/include2下载nginx源码,解压注意版本号,如果机子上已经装了nginx,不想升级的话,请使用/to/nginx/sbin/nginx–v来查看版本号3下载ngx_devel_kitHERE解压4下载nginx_lua_moduleHERE解压5进入nginx源码文件夹cdnginx-1.0.11/6导入环境变量,编译exportLUAJIT_LIB=/usr/local/lib#这个很有可能不一样exportLUAJIT_INC=/usr/local/include/luajit-2.0#这个很有可能不一样./configure--prefix=/opt/nginx\#nginx的安装路径--add-module=/path/to/ngx_devel_kit\#ngx_devel_kit的源码路径--add-module=/path/to/lua-nginx-module#nginx_lua_module的源码路径make-j2makeinstall7测试是否成功:nginxconfig中加入location/hello{default_type'text/plain';content_by_lua'ngx.say("hello,lua")';}使用/to/nginx/sbin/nginx–t检查nginx配置,此时应该没有报错8/to/nginx/sbin/nginx#启动nginx或者/to/nginx/sbin/nginx–sreload#重启nginx访问192.168.100.1/hello会出现“hello,lua”
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯