nginx - redirection Django vers un chemin relatif
黄舟
黄舟 2017-05-16 17:24:35
0
1
799

L'environnement de déploiement est Nginx + gunicorn + Django

La configuration de Nginx est la suivante

location /app1 {
        rewrite ^/app1/(.*)$ / break;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_redirect off;
        proxy_pass http://11.11.11.1:8001;
}
location /app2 {
        rewrite ^/app2/(.*)$ / break;
        proxy_pass_header Server;
        proxy_set_header Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Scheme $scheme;
        proxy_redirect off;
        proxy_pass http://11.11.11.1:8002;
}

app1 et app2 sont des applications différentes. Voici les problèmes rencontrés

.

Lors de votre visite /app1/test 的时候,Django 会在末尾加上 slash 并且重定向,问题在于会重定向 /test/,而不是/app1/test/
En visite /app1/admin 时,会重定向到/admin/login/?next=/admin/.

Dans mon propre programme, par exemple, lorsque l'authentification Oauth nécessite un URI redirigé, ce à quoi je pense, c'est que Nginx transmet $http_host/app1 通过 X-host au backend Django lorsqu'il agit en tant que proxy, puis obtient le véritable URI.

Mais je ne sais pas comment transmettre l'URI et le chemin réels lors d'une redirection dans Django, ou je peux utiliser des chemins relatifs au lieu de chemins absolus lors d'une redirection dans Django.

黄舟
黄舟

人生最曼妙的风景,竟是内心的淡定与从容!

répondre à tous(1)
洪涛

https://docs.djangoproject.com/en/dev/ref/settings/#use-x-forwarded-ho...

https://docs.djangoproject.com/en/1.8/ref/settings/#force-script-name

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal