Mam poda z gunicornem i poda z nginxem strona działa tylko nie może mi wyświetlać staticów, które mam pod /static/ na podzie z nginxem są te statici w katalogu /static/. Nginx ingress controller w logach zwraca mi GET /static/style.css HTTP/1.1" 304 0 "http://django-app.test.com/login/?next=/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:13 nie mam pomysłu gdzie tu może być błąd. W settings.py z którego buduje obraz gunicorna mam
STATIC_ROOT = '/static/'
STATIC_URL = '/static/'
apiVersion: apps/v1
kind: Deployment
metadata:
name: gunicorn-deployment
namespace: django-app
labels:
app: gunicorn
spec:
replicas: 1
selector:
matchLabels:
app: gunicorn
template:
metadata:
labels:
app: gunicorn
spec:
containers:
- name: gunicorn
image: private image
ports:
- containerPort: 8000
volumeMounts:
- name: shared-volume-django
mountPath: /static/
lifecycle:
postStart:
exec:
command: ["/bin/sh", "-c", "poetry run python manage.py collectstatic --noinput"]
volumes:
- name: shared-volume-django
persistentVolumeClaim:
claimName: shared-volume-django-pvc
---
apiVersion: v1
kind: Service
metadata:
name: gunicorn-service
namespace: django-app
spec:
selector:
app: gunicorn
ports:
- name: http
protocol: TCP
port: 8001
targetPort: 8000
---
i pod to poda nginxowego
apiVersion: v1
kind: ConfigMap
metadata:
name: nginx-conf-cm
namespace: django-app
data:
nginx.conf: |
events {
}
http {
server {
listen 80;
server_name django-app.test.com;
location = /favicon.ico { access_log off; log_not_found off; }
location /static/ {
alias /static/;
}
location / {
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-Proto $scheme;
proxy_pass http://gunicorn-service:8001;
}
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: nginx-deployment
namespace: django-app
labels:
app: nginx
spec:
replicas: 1
selector:
matchLabels:
app: nginx
template:
metadata:
labels:
app: nginx
spec:
containers:
- name: nginx
image: nginx:latest
ports:
- containerPort: 80
volumeMounts:
- name: nginx-config-volume
mountPath: /etc/nginx/nginx.conf
subPath: nginx.conf
- name: shared-volume-django
mountPath: /static/
volumes:
- name: nginx-config-volume
configMap:
name: nginx-conf-cm
- name: shared-volume-django
persistentVolumeClaim:
claimName: shared-volume-django-pvc
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
namespace: django-app
spec:
selector:
app: nginx
ports:
- name: http
protocol: TCP
port: 8002
targetPort: 80
---
łącze sie przez ingress
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: ingress-django
namespace: django-app
spec:
ingressClassName: nginx
rules:
- host: "django-app.test.com"
http:
paths:
- pathType: Prefix
path: "/"
backend:
service:
name: nginx-service
port:
number: 8002