比尔萄堡

上帝说: “要有光” 于是,就有了光。


  • 首页

  • 归档

  • 关于我

  • 公益404

  • 搜索

记一次 nginx error: host not found in upstream

时间: 2021-12-27 分类: 问题排查/日常问题   字数: 488 字 阅读: 1分钟 阅读次数:

当时配置文件已精简如下:

server {
  listen 80;
  server_name landing.dev.xxxnohackxxx.com landing.xxxnohackxxx.tech;

  location / {
    proxy_pass http://xxxnohackxxx-landing-dev.mosaic-dev.svc.cluster.local:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
  }
}

server {
  listen 80;
  server_name dev.xxxnohackxxx.com xxxnohackxxx.tech;

  location / {
    proxy_pass http://xxxnohackxxx-frontend-site-dev.mosaic-dev.svc.cluster.local:8080;
    proxy_set_header X-Real-IP $remote_addr;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header Host $http_host;
    proxy_set_header X-NginX-Proxy true;
  }
}

更新配置 nginx -s reload 会报错:

nginx: [emerg] host not found in upstream "xxxnohackxxx-landing-dev.mosaic-dev.svc.cluster.local:8080" in /etc/nginx/conf.d/xxxnohackxxx.conf:19

使用 nslookup xxxnohackxxx-landing-dev.mosaic-dev.svc.cluster.local 得到结果,一切正常:

Server:		192.168.0.10
Address:	192.168.0.10#53

Name:	xxxnohackxxx-landing-dev.mosaic-dev.svc.cluster.local
Address: 192.168.33.71

更改nginx config,发现如果使用同一个proxy_pass(landing或frontend-site),nginx是可以更新配置的。

查看DNS解析配置: cat /etc/resolv.conf

options timeout:2 attempts:3 rotate single-request-reopen
; generated by /usr/sbin/dhclient-script
nameserver 192.168.0.10
nameserver 100.100.2.136
#nameserver 100.100.2.138

关键点在第一行,发现一个熟悉的rotate,注视掉,果然nginx可以更新配置了。 接下来介绍几个参数: timeout: 请求下一个nameserver的等待时间,单位是秒,只有超时才会轮训nameserver,解析失败不会。所以多个nameserver如果解析范围不一致,后边的就大概用不上。

attempts: 重试总次数,默认是2

rotate:按顺序循环请求 nameserver,有点负载均衡的意思。但是在 RHEL7.5 之前有个bug,会从第二个开始使用,官方给的解释是 nameserver rotation 发生在 nameserver 之前,详细参考 redhat solutions

single-request-reopen: 只收到一个IPV4应答或者只收到一个IPV6应答,重新开一个socket查询。这个说起来有点复杂,可以参考 cnblogs

#nginx# #dns#

标题:记一次 nginx error: host not found in upstream

作者:训导主任林作栋

声明: 本博客文章除特别声明外,均采用 CC BY-NC-SA 3.0许可协议,转载请注明出处!

创作实属不易,如有帮助,那就打赏博主些许茶钱吧 ^_^
WeChat Pay

微信打赏

Alipay

支付宝打赏

ack ingress controller的奇特现象
gitlab fingerprint has already been taken
训导主任林作栋

训导主任林作栋

戏谑的码农,北野武的拥趸,李安的迷弟,伍佰的Fans

55 日志
23 分类
62 标签
豆瓣
友情链接
  • Obsidian
  • V2EX
  • 关注黑客与极客
  • 廖雪峰
标签云
  • Linux 6
  • K8s 5
  • 数据库 5
  • Golang 4
  • Etcd 3
  • Mysql 3
  • Ai 2
  • Gitlab 2
  • Postgres 2
  • 前端 2
© 2010 - 2024 比尔萄堡
Powered by - Hugo v0.58.2 / Theme by - NexT
/
Storage by Vercel / 刘 ICP 备 18047355 号
0%