管理接口访问报错

系统版本 内核版本
Ubuntu 14.04.2 3.13.0-32-generic

我们在这里通过curl来插入命令的时候直接报错:

curl命令写入规则

curl 'http://127.0.0.1:8080/ab_admin?token=zuesx&action=policy_set' -d '{"divtype":"30102","divdata":[{"30102_set":["hsy51234567qc","hsyf1a2c3d4b5"],"upstream":"newhsy"}]}'
2018/10/23 17:44:28 [error] 8738#0: *1090 lua entry thread aborted: runtime error: /opt/nginx/lua_gray/admin/ab_action.lua:5: loop or previous error loading module 'abtesting.utils.utils'
stack traceback:
coroutine 0:
[C]: in function 'require'
/opt/nginx/lua_gray/admin/ab_action.lua:5: in function </opt/nginx/lua_gray/admin/ab_action.lua:1>, client: 127.0.0.1, server: localhost, request: "POST /ab_admin?token=zuesx&action=policy_set HTTP/1.1", host: "127.0.0.1:8080"

上面的报错很明显,又提示进入调用死循环关系或者前期错误当加载'abtesting.utils.utils' 模块的时候,怎么办呢?

  1. 先执行ldconfig,重新加载所有的动态链接库。
  2. 然后重启nginx即可。

    如下所示:
# ldconfig
# supervisorctl
nginx RUNNING pid 8737, uptime 0:10:03
supervisor> restart nginx
nginx: stopped
nginx: started

yield报错

管理接口通过curl(同上)写入规则的时候,报这个错误

attempt to yield across metamethod/C-call boundary

这个的话,我是重新安装了这几步

原版本

  1. lua 5.1
  2. LuaJIT 2.0.2
  3. tengine是2.2.0,

安装后的版本是

  1. lua5.1
  2. LuaJIT 2.0.5
  3. tengine是2.2.0

其实升级的就是LuaJIT而已,主要是安装完LuaJIT后,需要重新编译下tengine,并且我这里使用lua-nginx-module版本是lua-nginx-module-0.10.13

redis连接提示Operation refused

我把ab部署到阿里云后,在阿里云开了一个redis,redis使用的域名连接,然后我在server段的redis配置,把$redis_host的地址设置为了 xxx.aliyun.com,这个域名就是redis连接域名。于是启动nginx+ab,发现在业务流量分流的时候,nginx日志里面总是提示 连接redis失败,所以灰度名单分流也失败,但是发现规则增删改查的接口都没有问题,也就是没有提示任何连接redis失败的原因,我剖析ab的源码,发现都是共用一个redis模块,或者说共用一个redis方法来实现连接的,为什么管理接口的却没有事呢,关键这个Operation refused并没有提示更多有用的信息,于是我把连接redis的那段代码,把err信息全部通过ngx.say这样的方式打印出来,发现完整的报错信息是xxx.aliyuncs.com could not be resolved (5: Operation refused) ,得,这很明显了,是redis域名无法解析出来。

根因找到了,那么就分析为啥会这样的,我仔细查看nginx的配置文件,发现有问题的那个业务配置文件,有一行这样的配置: resolver xxx.xxx.xxx.xxx valid=300s ,然后我又仔细上nginx官网查询了下这个resolver的配置,官网解释请戳这里 , 意思是说这个resolver的配置是表明这个server的所有域名解析都是用这个dns服务器来解析,而redis的域名是阿里云内部的域名,使用刚才配置单的那个dns,根本无法解析,所以才会提示redis连接不上了。

找到为什么会导致无法连接redis的原因后,我们就开始整改了,把resolver去掉或者添加一个阿里云的dns即可。添加完成后重启nginx就可以正常使用ab分流功能了。

abtestingGateway错误集锦的更多相关文章

  1. SVN下错误集锦

    SVN下错误集锦 一SVN下的文件被locked不能update和commit 最近做项目的时候,遇到这个问题,SVN下的文件被locked不能update和commit.其提示如下: 解决办法:执行 ...

  2. (转)Hadoop之常见错误集锦

     Hadoop之常见错误集锦            下文中没有特殊说明,环境都是CentOS下Hadoop 2.2.0.1.伪分布模式下执行start-dfs.sh脚本启动HDFS时出现如下错误:   ...

  3. 在Hadoop 2.3上运行C++程序各种疑难杂症(Hadoop Pipes选择、错误集锦、Hadoop2.3编译等)

    首记 感觉Hadoop是一个坑,打着大数据最佳解决方案的旗帜到处坑害良民.记得以前看过一篇文章,说1TB以下的数据就不要用Hadoop了,体现不 出太大的优势,有时候反而会成为累赘.因此Hadoop的 ...

  4. drp错误集锦---“Cannot return from outside a function or method”

    好久都不动的项目,今天打开项目突然是红色感叹号.详细错误表现为: 也就是说,如今MyEclipse已经不识别在JSP页面中使用的return方法了(并且不止一处这种警告),那怎么办?????顿时闹钟一 ...

  5. django 2.0 xadmin 错误集锦

    转载 django 2.0 xadmin 错误集锦 2018-03-26 10:39:18 Snail0Li 阅读数 5188更多 分类专栏: python   1.django2.0把from dj ...

  6. Tensorflow 错误集锦

    文章目录 参考文献 本文记录笔者在Tensorflow使用上的一些错误的集锦,方便后来人迅速查阅解决问题. 我是留白. 我是留白. CreateSession still waiting for re ...

  7. Python:常见错误集锦(持续更新ing)

    初学Python,很容易与各种错误不断的遭遇.通过集锦,可以快速的找到错误的原因和解决方法. 1.IndentationError:expected an indented block 说明此处需要缩 ...

  8. centos7安装mplayer 错误集锦

    (1)在 linux下运行程序时,发现了error while loading shared libraries这种错误,一时间不知道解决办法,在网上搜索,终于解决了:./tests: error w ...

  9. ubuntu安装php常见错误集锦

    一.configure 报错 1.错误类型: Configure: error: Please reinstall the libcurl distribution-easy.h should be ...

随机推荐

  1. php curl数据传输神器

    一.curl的概念: curl (Client Url Library Functions) 定义: curl is a command  line tool for transfering data ...

  2. JS自学笔记02

    JS自学笔记02 1.复习 js是一门解释性语言,遇到一行代码就执行一行代码 2.查阅mdn web文档 3.提示用户输入并接收,相比之下,alert只有提示的作用: prompt(字符串) 接收: ...

  3. 使用Qemu运行Ubuntu文件系统(1)

    参考 https://blog.csdn.net/mountzf/article/details/51707853 https://blog.csdn.net/stephen_lu_fahai/art ...

  4. hive sql 里面的注释方式

    如果建表ddl 用 comment 这个没问题 那么在sql 语句里面呢,这个貌似不像mysql 那样能用 # // /* */ (左边这些都不行) 其实用 -- comment 就行啦 貌似上面的- ...

  5. kettle 6.1 按时间循环增量抽取数据

    场景:假设有一张表数据量很大,需要按一个时间来循环增量抽取 方法:主要是通过JOB自身调用,实现循环调用,类似于 函数自调用 的循环. 1.JOB全图: 2.获取增量时间,并设置增量时间环境变量 3. ...

  6. .NET Threadpool的一点认识

    说到.NET Threadpool我想大家都知道,只是平时比较零散,顾现在整理一下: 一码阻塞,万码等待:ASP.NET Core 同步方法调用异步方法“死锁”的真相 .NET Threadpool ...

  7. python-写入excel(xlswriter)

     一.安装xlrd模块: 1.mac下打开终端输入命令: pip install XlsxWriter 2.验证安装是否成功: 在mac终端输入 python  进入python环境 然后输入 imp ...

  8. 类中添加log4j日志

    在编写代码的时候需要随时查看工作日志,查看工作日志的好处就是随时能检查出错误.所以我一般就需要在编写代码的前期添加工作日志,以便更好的查看相关错误输出. 以一个springmvc小demo为例子  主 ...

  9. 解决eureka注册时使用ip而不是hostname

    eureka的client注册到server时默认是使用hostname而不是ip,这就导致client在多台机器时,服务间相互调用时也会使用hostname进行调用,从而调用失败.这时候就需要使用i ...

  10. myBase7 激活方法

    一.引言: 之前使用过一段时间的myBase,那时候发现还不太美观,所以弃用了一段时间,最近看到有myBase7出来,使用了一下感觉还可以,但是只能试用一个月,不过还好找到了破解的方法. 二.破解步骤 ...