Nginx
反向代理的设置
proxy_set_header 的用法
问题:proxy_pass 的DNS解析有缓存
本文档使用 MrDoc 发布
-
+
首页
问题:proxy_pass 的DNS解析有缓存
有个项目有如下配置: ``` location / { proxy_pass http://backend-svc:8080; } ``` 其中,`backend-svc` 是后端服务在k8s中的service名称。 当我们通过yaml文件重启后端服务的时候,`backend-svc` 服务也会被重新创建,导致该service对应的IP发生了变化,但是nginx解析出的IP还是之前的IP,导致问题出现。 究其原因,是因为nginx在加载配置文件时就会将域名解析成IP,此后不再重新解析。 需要修改成动态DNS解析,将域名配置成变量,配置如下: ``` resolver kube-dns.kube-system.svc.cluster.local valid=10s; set $backend_svc backend-svc.default.svc.cluster.local; location / { proxy_pass http://$backend_svc:8080; } ``` 配置说明: - 动态解析必须配置resolver 域名服务器; - valid是dns缓存过期时间; 参考: > [Nginx 反向代理 DNS 缓存问题](https://blog.csdn.net/afeiqiang/article/details/105129798 "nginx 反向代理 proxy_pass DNS 缓存问题") [Nginx won't resolve hostname in K8S](https://stackoverflow.com/questions/51090684/nginx-wont-resolve-hostname-in-k8s "nginx won't resolve hostname in K8S")
gaojian
2021年11月4日 16:01
分享文档
收藏文档
上一篇
下一篇
微信扫一扫
复制链接
手机扫一扫进行分享
复制链接
关于 MrDoc
觅思文档MrDoc
是
州的先生
开发并开源的在线文档系统,其适合作为个人和小型团队的云笔记、文档和知识库管理工具。
如果觅思文档给你或你的团队带来了帮助,欢迎对作者进行一些打赏捐助,这将有力支持作者持续投入精力更新和维护觅思文档,感谢你的捐助!
>>>捐助鸣谢列表
微信
支付宝
QQ
PayPal
Markdown文件
分享
链接
类型
密码
更新密码