nginx之resolver解析
//
问题现象:
之前遇到过nginx里对应的upstream配置的是service的clusterip或者service名字 service对应的后端pod重建,ip变动后,nginx还保留着老的pod ip信息,nginx -s reload 是恢复了,但总不能监测pod去reload 通过域名服务,解析得知需要代理的IP,这样也不会出现由于后端服务IP端口不通导致nginx起不来
k8s内部dns服务:kube-dns.kube-system.svc.cluster.local,
iot命名空间下的某个svc名称:monitor-service-web.iot.svc.cluster.local
server {
listen 80;
server_name _;
root /usr/share/nginx/html/;
index index.html index.htm;
absolute_redirect off;
location /monitor/ {
resolver kube-dns.kube-system.svc.cluster.local valid=10s ;
set $proxy_url "monitor-service.iot.svc.cluster.local:8080";
proxy_pass http://$proxy_url$1;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "Upgrade";
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Forwarded-Server $http_host;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
//
如果此文章对您有帮助,点击 -->> 请博主喝咖啡 (opens new window)
上次更新: 2025/06/20, 11:34:25