管理接口访问报错

系统版本 内核版本
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. java第七周动手动脑

    public class ParentChildTest { public static void main(String[] args) { Parent parent=new Parent(); ...

  2. c# 后台绑定treeview 单个tab

    <wijmo:C1TreeView ID="C1TreeView1" runat="server" ShowCheckBoxes="true&q ...

  3. mysql:Cannot proceed because system tables used by Event Scheduler were found damaged at server start

    mysql 5.7.18 sqlyog访问数据库,查看表数据时,出现 Cannot proceed because system tables used by Event Scheduler were ...

  4. 如何实现CSS限制字数,超出部份显示点点点...

    <div style="width:200px; white-space:nowrap;overflow:hidden;text-overflow:ellipsis; border:1 ...

  5. openstack 之~horizon部署

    第一:部署horizon环境: 安装部署memcache 安装软件包 yum install memcached python-memcached 启动memcache并且设置开机自启动 system ...

  6. hdu5299 Circles Game

    Circles Game Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Tot ...

  7. redis 简单使用总结

    作者:王清培(Plen wang)  沪江Java资深架构师 最近一段时间与redis接触比较频繁.发现有些东西还是工作中经常会用到的,自己也花了点时间巩固下.本篇文章主要是以总结性的方式梳理,因为r ...

  8. python 2 字典的基本使用

    dicVisit={} if not dicVisit.has_key(visitKey):#不存在 diaSet = set() diaSet.add(diagnoseContent) dicVis ...

  9. 科技论文之Latex公式&amp;符号

    近期在写文章.有好多数学公式的命令都忘记了. 今天索性一起整理下. 1 能够在文章的作者上引用的符号 2  一些括号使用方法 3 一些高等数学的公式 4  交,并集 5  一些二项式 6 矩阵写法 7 ...

  10. Web Workers 简介

    web worker 介绍:https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Using_web_workers web ...