Serwowanie statycznych plików

Serwowanie statycznych plików
Raloseq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 291
0

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

Kopiuj
STATIC_ROOT = '/static/'
STATIC_URL = '/static/'
Kopiuj
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

Kopiuj
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

Kopiuj
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
Raloseq
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 291
0

include mime.types; trzeba było dodać w nginx.conf

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.