我有nginx提供内部Django服务器的静态文件和代理请求。 这一切都工作正常,但我有一个视图返回302redirect回到引用页面,有效地做一个链接点击浏览器刷新。
当没有通过nginx服务,这是有效的,应用程序返回302位置标题设置为相同的页面,这是我想要的。 但是,当通过nginx服务时,它redirect回“/”。 看来不pipe我尝试什么,总是这样做。
我已经检查,Django收到请求引用标题,这是。 我已经尝试了proxy_redirect
注释掉,设置为off
和default
和/ /
。 我不能使用后者,因为它剥离了我目前需要testing的端口号。
这是我的nginxconfiguration:
upstream django { server unix:/run/waitress/django.sock; } server { listen 80 backlog=4096; server_name www.example.co.uk; charset utf-8; client_max_body_size 20M; root /var/www/static_public; location /media { sendfile on; sendfile_max_chunk 500k; tcp_nopush on; } location /static { sendfile on; sendfile_max_chunk 100k; tcp_nopush on; } # favicon redirect location ~ ^/[az][a-hj-z][az-]+\.(png|xml|ico|json|svg)$ { return 301 /static/site/img$request_uri; } location / { proxy_pass http://django/; #proxy_redirect what do I put here????; proxy_set_header Host $host; #proxy_set_header Referer $http_referer; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; } }
nginx传递Referer头部而不明确设置它。
虚惊!
事实certificate,我的django视图正在返回“/”redirect,由于我的testing设置,引用标头不被视为is_safe_url
:/
proxy_redirect off;
正在为我工作。