最近遇到了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. canvas的常用功能(电脑版)

    前言: canvas可以单独算为前端的一大知识模块, 今天就研究一下. 先做下前文铺垫: ①创建canvas <canvas id="myCanvas" width=&quo ...

  2. wc项目(node.js实现)

    一.github地址:https://github.com/Jasminejiamei/homework-wc 二.PSP PSP Personal Software Process Stages 预 ...

  3. jmeter中websocket接口测试

    一.Websocket协议简介 Websocket是一个持久化的协议,相对于HTTP这种非持久的协议来说: HTTP协议: HTTP的生命周期通过 Request 来界定,也就是一个 Request  ...

  4. Python从零开始——迭代器与生成器

    一:迭代器 二:生成器

  5. [Linux]F5负载均衡器

    F5负载均衡器是硬件的负载均衡设备 F5配置最简单负载均衡,需要配置的参数有Node(节点).Pool(资源池).和Virtual Server(虚拟服务器),它们的关系是,先配置Node,然后配置V ...

  6. Git学习笔记3-远程仓库

    1.添加远程仓库 $ git remote add [shortname] [url] $ git remote add origin https://github.com/Mike199201/Gi ...

  7. Django类

    django 1.中间件   中间件一般做认证或批量请求处理,django中的中间件,其实是一个类,在请求和结束后,django会根据自己的规则在合适的时机执行中间件中相应的方法, 如请求过来 执行p ...

  8. gerrit的使用以及问题总结

    看到了一篇很好的博客,大纲如下: 链接如下: https://www.ieclipse.cn/2016/05/14/other/tech-gerrit-guide/index.html 另外一篇: 代 ...

  9. 201871010114-李岩松《面向对象程序设计(java)》第十五周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...

  10. 201871010109-胡欢欢《面向对象程序设计(java)》第十一周学习总结

    项目 内容 这个作业属于哪个课程 https://www.cnblogs.com/nwnu-daizh/ 这个作业的要求在哪里 https://www.cnblogs.com/nwnu-daizh/p ...