Nginx 动态解析 proxy_pass 地址

Nginx Kubernetes About 576 words

使用场景

Kubernetes中,一些代理的地址(K8S内部Service)会随着业务开启或关闭。

如果固定写死一个地址,那么在没有Service情况下,Nginx就会启动报错。

动态解析配置

添加DNS解析配置resolver,指定为KubernetesDNS解析服务。

如果不配置resolver,而直接使用了变量的方式来设置proxy_pass,虽然Nginx能正常启动,但请求时也会返回错误,Nginx会直接将变量作为纯文本。(而不是替换为set的那部分)

location /myurl/ {
  resolver kube-dns.kube-system.svc.cluster.local;
  set $upstream http://myservice.mynamespace.svc.cluster.local;
  proxy_pass $upstream;
}

参考

https://stackoverflow.com/questions/71204607/why-does-a-variable-not-work-in-nginx-proxy-pass

https://sandro-keil.de/blog/let-nginx-start-if-upstream-host-is-unavailable-or-down/

Views: 314 · Posted: 2025-01-03

————        END        ————

Give me a Star, Thanks:)

https://github.com/fendoudebb/LiteNote

扫描下方二维码关注公众号和小程序↓↓↓

扫描下方二维码关注公众号和小程序↓↓↓


Today On History
Browsing Refresh