Rumah  >  Soal Jawab  >  teks badan

nginx - django ubah hala ke laluan relatif

Persekitaran penggunaan ialah Nginx + gunicorn + Django

Konfigurasi Nginx adalah seperti berikut

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 dan app2 adalah aplikasi yang berbeza Berikut adalah masalah yang dihadapi

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

Dalam program saya sendiri, contohnya, apabila pengesahan Oauth memerlukan URI yang diubah hala, apa yang saya fikirkan ialah Nginx menghantar $http_host/app1 通过 X-host ke bahagian belakang Django apabila bertindak sebagai proksi, dan kemudian mendapat URI sebenar.

Tetapi saya tidak tahu cara untuk melepasi URI dan laluan sebenar apabila mengubah hala dalam Django, atau saya boleh menggunakan laluan relatif dan bukannya laluan mutlak apabila mengubah hala dalam Django.

黄舟黄舟2713 hari yang lalu712

membalas semua(1)saya akan balas

  • PHP中文网

    PHP中文网2017-05-16 17:26:35

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

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

    balas
    0
  • Batalbalas