nginx报错111: Connection refused
最近遇到了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的更多相关文章
- [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 ...
- mongodb报错:connection refused because too many open connections: 819
问题: 发现mongodb无法连接,查看mongodb日志,出现大量的如下报错: [initandlisten] connection refused because too many open co ...
- nginx 报错 connect() failed (111: Connection refused) while connecting to upstream
公司网站搬迁到新服务器后,发现站点访问不了,network里面提示502,查看相关的server配置,感觉没有什么问题,经过测试发现txt.html.等非php文件能够直接访问,也就是php访问不了, ...
- Nginx报错 connect() failed (111: Connection refused) while connecting to upstream 的解决方法
今天访问公司的网站突然报错,抛出一些英文,提示看一下Nginx的error.log日志: cd /usr/local/nginx/logs/ 看到了error.log ,下一步 tail -n 2 ...
- connect() failed (111: Connection refused) while connecting to upstream报错处理
新lnmp环境调试项目时,nginx报错如下: 解决: 发现php-fpm.conf是以套接字方式通信,而nginx是以端口方式通信,见下图: 将nginx.conf修改为如下,重新reload即可
- 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: * ...
- nginx 报错 upstream timed out (110: Connection timed out)解决方案【转】
转自 nginx 报错 upstream timed out (110: Connection timed out)解决方案 - 为程序员服务http://outofmemory.cn/code-sn ...
- nginx 解决 connect() failed (111: Connection refused) while connecting to upstream,
嗯哼,刚装了个ubuntu的lnmp,我的天啊,踩的坑比我脂肪还多了 比如刚装完的时候访问显示502, 也不知道什么问题,就去看了一下nginx日志 /var/log/nginx/error.log ...
- WARNING OGG-01223 TCP/IP error 111 (Connection refused)
一:问题描述 GGSCI (source_pc) 64> info all Program Status Group Lag at Chkpt Time Sinc ...
随机推荐
- express的安装和新建项目流程!
1.安装脚手架工具:npm install express express-generator -g 2.-h 参数可以列出所有可用的命令行参数 3.创建项目:express -e firstexp ...
- Scrum 冲刺第四篇
我们是这次稳了队,队员分别是温治乾.莫少政.黄思扬.余泽端.江海灵 一.会议 1.1 28号站立式会议照片: 1.2 昨天已完成的事情 团队成员 昨日已完成的任务 黄思扬 活动内容管理页(前端) ...
- 如何在unbuntu 16.04上离线部署openssh
背景:由于部署环境不能联网,为了方便文件传输,需要用到openssh.故实施步骤是,先在可以联网机器上下载离线包,然后用U盘拷贝到部署环境中. 第一步:下载离线包,下载网址:https://packa ...
- day 35
目录 单表操作 分组 group by having order by limit 使用顺序 多表操作 外键 一对多 多对多 一对一 多表联查 单表操作 分组 group by 分组指的是:将所有记录 ...
- 关于SQLite数据库 字段 DateTime 类型
这两天刚接触SQLite 数据库 还没有太过于深入的了解 , 于是出现了一个问题 : 我在 C#中 ,使用SQLiteHelper 查询SQLite数据库数据时,报了这个错误: System.Form ...
- [TCP/IP] 三次握手过程中有哪些不安全性
1)SYN flood 泛洪攻击 , 伪装的IP向服务器发送一个SYN请求建立连接,然后服务器向该IP回复SYN和ACK,但是找不到该IP对应的主机,当超时时服务器收不到ACK会重复发送.当大量的攻击 ...
- javascript加载XML字符串或文件
1. 加载XML文件 方法1:ajax方式.代码如下: var xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObje ...
- C#实体类(复杂类)与XML互相转换
实体类转换成XML方法: 将实体类转换成XML需要使用XmlSerializer类的Serialize方法,将实体类序列化 public static string XmlSerialize<T ...
- linux pkgsrc 学习(一) 安装pkgsrc
使用pkgsrc.joyent.com 提供的linux 包 下载包 # # Copy and paste the lines below to install the 64-bit EL 7.x s ...
- vue项目的安装与启动
第一步:安装Node 检测Node是否安装成功 node -v 第二步:安装vue-cli 命令:npm install vue-cli -g 第三步:搭建项目命令 vue init we ...