nginx – Django-Weiterleitung zum relativen Pfad
黄舟
黄舟 2017-05-16 17:24:35
0
1
735

Die Bereitstellungsumgebung ist Nginx + Gunicorn + Django

Nginx-Konfiguration ist wie folgt

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 und app2 sind unterschiedliche Anwendungen. Die folgenden Probleme sind aufgetreten

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

Wenn in meinem eigenen Programm beispielsweise für die OAuth-Authentifizierung ein umgeleiteter URI erforderlich ist, denke ich daran, dass Nginx $http_host/app1 通过 X-host an das Backend-Django übergibt, wenn es als Proxy fungiert, und dann den echten URI erhält.

Aber ich weiß nicht, wie ich den echten URI und Pfad übergeben soll, wenn ich in Django umgeleitet habe, oder ich kann bei der Umleitung in Django relative Pfade anstelle absoluter Pfade verwenden.

黄舟
黄舟

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

Antworte allen(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

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage