我正在尝试使用nginx创建一个动态proxy_pass,做类似的事情:
我的nginx.conf使用静态值,但是使用正则表达式,可以工作约5分钟,然后错误开始
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config-dns-file
data:
nginx.conf: |
server {
listen 80;
server_name ~^(?<subdomain>.*?)\.;
resolver kube-dns.kube-system.svc.cluster.local valid=5s;
location /healthz {
return 200;
}
location / {
proxy_pass http://$subdomain.default.svc.cluster.local;
}
}
我的Pod获取服务IP而不是名称,这是日志
2019/11/11 22:30:40 [错误] 6#6: 163 10.default.svc.cluster.local 无法解析(3:找不到主机),客户端:10.142.0.34, 服务器:〜^(?。?)。,请求:“ GET / HTTP / 1.1”,主机: “ 10.142.0.34”
10。是ip的起点。 我不知道出了什么问题,有人可以帮我吗,谢谢!!
答案 0 :(得分:1)
解决此问题
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-config-dns-file
data:
nginx.conf: |
server {
listen 80;
server_name ~^(?<subdomain>.*?)\.;
resolver kube-dns.kube-system.svc.cluster.local valid=5s;
location /healthz {
return 200;
}
location / {
proxy_set_header Host $host
proxy_pass http://$subdomain.default.svc.cluster.local;
}
}