我一直在尝试部署我的web应用程序kubernetes。在Kubernetes的前端和后端配置一个Nginx
我想用nginx作为反向代理在我的后端和前端服务之前模仿旧部署。
我有3件在我的系统中,nginx,正面和背面。我构建了3个部署,3个服务,并使用nodePort: 30050
仅显示了我的nginx服务。
如果没有进一步的延迟,这是我的nginx.conf:
upstream my-server {
server myserver:3000;
}
upstream my-front {
server myfront:4200;
}
server {
listen 80;
server_name my-server.com;
location /api/v1 {
proxy_pass http://my-server;
}
location/{
proxy_pass http://my-front;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection 'upgrade';
proxy_set_header Host $host;
proxy_cache_bypass $http_upgrade;
proxy_set_header X-Forwarded-For $remote_addr;
}
}
我试图安装内部舱体一个卷曲,则nslookup,并试图做集群内部端点手动请求......泪水涌上我的眼睛,一切都在工作......我几乎是一个值得云计算的开发者。
一切工作正常......除了nginx DNS解析之外,其他的一切都很顺利。
如果我做kubectl exec -it my-nginx-pod -- /bin/bash
并试图蜷缩其他2个服务中的其中一个:curl myfront:4200
它可以正常工作。
如果我尝试nslookup其中之一,它也可以。
之后,我尝试在nginx.conf中使用pod IP替换服务名称。重新启动nginx服务后,一切正常。
为什么nginx没有正确解析上游名字? 我对此很感兴趣。
只是一个旁注:也许你想看看Ingress和Nginx Ingress控制器。这样您就不需要再手动编写Nginx配置了,请参阅https://kubernetes.io/docs/concepts/services-networking/ingress/。 –