так что у меня в K8 работает приложение django, но мой ресурс, такой как .css, не будет загружен. Я всегда получаю 404 на них. Я использую Ingress-Nginx для маршрутизации входящего трафика.
Входная конфигурация выглядит следующим образом:
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: ingress-aboi
annotations:
kubernetes.io/ingress.class: nginx
ingress.kubernetes.io/rewrite-target: /
spec:
tls:
- secretName: tls-cert
rules:
#- host: dev.<ip>.xip.io
- http:
paths:
- path: /
backend:
serviceName: django-service
servicePort: 8000
Для index.html, который я пробовал с косой чертой и без нее. Потому что я нашел эту информацию в этой теме. Kubernetes Ingress Nginx загрузка ресурсов 404 К сожалению, это не решает мою проблему.
Index.html
<html lang="en">
<head>
<title>Log in | Django site admin</title>
<link rel="stylesheet" type="text/css" href="static/admin/css/base.css">
<link rel="stylesheet" type="text/css" href="static/admin/css/login.css">
<link rel="stylesheet" type="text/css" href="static/admin/css/responsive.css">
</head>
<body>
</body>
</html>
До того, как я использовал nginx с этой конфигурацией, но я не хочу использовать другой модуль, если могу обрабатывать трафиктолько с компонентом ingress-nginx.
nginx.conf
server {
listen 443 ssl;
location /media {
alias /website/media;
}
location /static {
alias /website/static;
}
location / {
uwsgi_pass django;
include /etc/nginx/uwsgi_params;
uwsgi_read_timeout 300;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto https;
proxy_set_header Host $http_host;
proxy_redirect off;
}
Итак, подведем итог. Я могу использовать приложение, но без ресурсов. Ресурсы находятся в одном из модулей приложения django. Я проверил, если они внутри, и они тоже. Я также попытался переписать фрагмент, как этот, чтобы соответствовать конфигурации nginx из ранее. Это тоже не работает.
nginx.ingress.kubernetes.io/configuration-snippet: |
rewrite (.*)/media/(.*) /website/media/$2 break;
rewrite (.*)/static/(.*) /website/static/$2 break;
Кстати. Если я использую хост, такой как xip.io, я вообще не могу получить доступ к своему приложению. Так что я действительно не знаю, что я испортил в конце. Домен был бы хорош, но важнее иметь возможность загружать необходимые ресурсы.
Любая помощь, советы и рекомендации приветствуются.
С уважением из Берлина.