最近遇到了nginx疯狂抛错,access.log一天一共5W多条,但error.log中有大概9K多条,基本都是111: Connection refused,这到底是为什么呢?

从日志看起

我们还是先来看日志。我提取了一条error.log当中抛错的日志(稍微分一下行,否则实在太长,敏感信息稍微处理了一下):

2019/06/06 10:09:45 [error] 28652#0: *883239 connect() failed (111: Connection refused) while connecting to upstream,
client: 124.104.90.145, server: xxx.xxxxx.com, request: "POST /test-service/upload?mcachenum=155978698 HTTP/1.1",
upstream: "http://[::1]:17000/test-service/upload?mcachenum=155978698", host: "xxx.xxxxx.com",
referrer: "https://servicewechat.com/x98b46f69/2/page-frame.html"

看了一下前面的报错和后面的描述,第一眼看上去感觉都是正常。但再看之后发现,upstream中的host有些不一样。[::1],这实际是一个IPv6的地址。

这时候你可以查看一下你的机器是否开启了IPv6的地址,linux的命令是:ip address,看看返回结果中是否出现了inet6,如果有,那么恭喜你,原因找到了。

解决办法

解决方法有两种,一个是禁用你机器的IPv6配置,另一个则是修改nginx.conf中的配置。

个人觉得后一个方法更加保险一些,因为这不涉及到你的机器配置,应该相对而言最少。

nginx.conf的修改,则是针对server模块中的location,修改proxy_pass中的host,我们在网上经常看到别人用的是:

proxy_pass http://localhost:18000/test-service/;

但为了强制指定IPv4的地址,需要变成:

proxy_pass http://127.0.0.1:18000/test-service/;

这样操作之后,再观察nginx的error.log,应该就不会再报upstream里含有IPv6地址的错误了。

总结

以上就是我这次错误的整个过程,虽然整个过程不长,但确实让我知道了,作为一个后端开发,我的知识面还是太窄了。而且Bing也是真的好用,最近无法翻墙了,暂时用Bing代替,感觉还是不错的。

有兴趣的话可以关注我的公众号,说不定会有意外的惊喜。

nginx报错111: Connection refused的更多相关文章

  1. [nginx] connect() failed (111: Connection refused) while connecting to upstream, client: 101.18.123.107, server: localhost,

    nginx一直报错, 2016/12/02 10:23:19 [error] 1472#0: *31 connect() failed (111: Connection refused)while c ...

  2. mongodb报错:connection refused because too many open connections: 819

    问题: 发现mongodb无法连接,查看mongodb日志,出现大量的如下报错: [initandlisten] connection refused because too many open co ...

  3. nginx 报错 connect() failed (111: Connection refused) while connecting to upstream

    公司网站搬迁到新服务器后,发现站点访问不了,network里面提示502,查看相关的server配置,感觉没有什么问题,经过测试发现txt.html.等非php文件能够直接访问,也就是php访问不了, ...

  4. Nginx报错 connect() failed (111: Connection refused) while connecting to upstream 的解决方法

    今天访问公司的网站突然报错,抛出一些英文,提示看一下Nginx的error.log日志: cd  /usr/local/nginx/logs/  看到了error.log ,下一步 tail -n 2 ...

  5. connect() failed (111: Connection refused) while connecting to upstream报错处理

    新lnmp环境调试项目时,nginx报错如下: 解决: 发现php-fpm.conf是以套接字方式通信,而nginx是以端口方式通信,见下图: 将nginx.conf修改为如下,重新reload即可

  6. nginx访问502 gateway,*1 connect() failed (111: Connection refused) while connecting to upstream

    安装好nginx,php环境后,配置虚拟主机,结果访问后就报502 gateway,查看日志文件后,显示错误如下: 2019/04/29 16:24:39 [error] 19433#19433: * ...

  7. nginx 报错 upstream timed out (110: Connection timed out)解决方案【转】

    转自 nginx 报错 upstream timed out (110: Connection timed out)解决方案 - 为程序员服务http://outofmemory.cn/code-sn ...

  8. nginx 解决 connect() failed (111: Connection refused) while connecting to upstream,

    嗯哼,刚装了个ubuntu的lnmp,我的天啊,踩的坑比我脂肪还多了 比如刚装完的时候访问显示502, 也不知道什么问题,就去看了一下nginx日志  /var/log/nginx/error.log ...

  9. WARNING OGG-01223 TCP/IP error 111 (Connection refused)

    一:问题描述 GGSCI (source_pc) 64> info all Program     Status      Group       Lag at Chkpt  Time Sinc ...

随机推荐

  1. 解决 bash: vue command not found

    背景  : win10 使用  yarn  全局 安装  vue/cli 后   yarn  global add  @vue/cli 提示安装成功 使用vue create   提示  bash: ...

  2. CTF必备技能丨Linux Pwn入门教程——ROP技术(上)

    Linux Pwn入门教程系列分享如约而至,本套课程是作者依据i春秋Pwn入门课程中的技术分类,并结合近几年赛事中出现的题目和文章整理出一份相对完整的Linux Pwn教程. 教程仅针对i386/am ...

  3. block注意事项

    1.block的声明和注意事项 #import "ZYViewController.h" @interface ZYViewController () @end /*用typede ...

  4. Writing Your Own Widget(自定义组件)

    英文地址:http://dojotoolkit.org/reference-guide/1.10/quickstart/writingWidgets.html#quickstart-writingwi ...

  5. 8.了解什么是 redis 的雪崩、穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透?

    作者:中华石杉 面试题 了解什么是 redis 的雪崩.穿透和击穿?redis 崩溃之后会怎么样?系统该如何应对这种情况?如何处理 redis 的穿透? 面试官心理分析 其实这是问到缓存必问的,因为缓 ...

  6. linux 中断底半部机制对比(任务队列,工作队列,软中断)--由linux RS485引出的血案【转】

    转自:http://blog.chinaunix.net/uid-20768928-id-5077401.html 在LINUX RS485的使用过程中,由于各种原因,最后不得不使用中断底半部机制的方 ...

  7. SDL2学习(一): 显示一张图片

    SDL是一个跨平台的多媒体库,它通过OpenGL和2D视频帧缓冲,提供了针对音频.视频.键盘.鼠标.控制杆及3D硬件的低级别的访问接口.这里使用较新的SDL2库. 1. 配置SDL开发环境 1.1 下 ...

  8. 2019 China Collegiate Programming Contest Qinhuangdao Onsite

    传送门 D - Decimal 题意: 询问\(\frac{1}{n}\)是否为有限小数. 思路: 拆质因子,看是不是只包含2和5即可,否则除不尽. Code #include <bits/st ...

  9. 唐敬博-201871010118 《面向对象程序设计(java)》第七周学习总结

    在博客园撰写博客(随笔),总结7周实验内容,作业格式要求如下: 博文名称:学号-姓名<面向对象程序设计(java)>第七周学习总结(1分) 博文正文开头格式:(2分) 项目 内容 这个作业 ...

  10. python27期day19:面向对象

    1.class GirlFriend(object): #定义女朋友类: eyes = 2 #类属性(静态属性),是属于当前类的 #当前类的所有对象,所共有的特征 sex = "女" ...