У меня проблемы с созданием файла конфигурации nginx для приложения django, развернутого в kubernetes.
Nginx и приложение - это два отдельных контейнера в одном кластере. Из того, что я понимаю, контейнеры могут общаться друг с другом через 127.0.0.1:XX и через имена хостов. Я использую миникуб для этого.
Контейнер моего приложения построен из этого файла:
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: website
labels:
name: website
spec:
template:
metadata:
labels:
name: website
spec:
containers:
- name: website
image: killabien/web
ports:
- containerPort: 8000
---
apiVersion: v1
kind: Service
metadata:
name: website
labels:
name: website
spec:
type: LoadBalancer
ports:
- port: 8000
targetPort: 8000
selector:
name: website
И nginx из этого:
apiVersion: v1
kind: Service
metadata:
name: frontend
spec:
ports:
- protocol: TCP
port: 80
targetPort: 80
selector:
app: website
tier: frontend
type: LoadBalancer
---
apiVersion: extensions/v1beta1
kind: Deployment
metadata:
name: frontend
spec:
template:
metadata:
labels:
app: website
tier: frontend
spec:
containers:
- image: killabien/nginx
name: nginx
Я могу получить доступ к самому приложению (обслуживаемому без статических файлов), но когда я пытаюсь связаться с nginx, я получаю ошибку 502 Bad Gateway. Вот файл конфигурации nginx:
upstream website {
server 127.0.0.1:8000;
}
server {
listen 80;
location /static {
alias /www/davidbien/static;
}
location / {
proxy_pass http://website;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
Я попытался заменить 127.0.0.1:8000 на имя контейнера (веб-сайт) и localhost: 8000, но ничего не изменилось. Что я делаю не так?