我的配置现在是nginx + uwsgi +不同的django应用程序。
我对nginx的配置配置如下:
location /app1/ {
uwsgi_pass app1;
include /home/code/uwsgi_params; # the uwsgi_params file you installed
}
location /app2/ {
uwsgi_pass app2;
include /home/code/uwsgi_params; # the uwsgi_params file you installed
}
我还在uwsgi中设置了挂载点,以使反向代理工作。
类似的东西:
mount = /app1=app1.wsgi:application
manage-script-name = true
因为我的应用需要登录才能访问网站内容。
所以当我输入www.example.com/app1
时Uwsgi将返回302重定向响应:
< HTTP/1.1 302 Found
< Server: nginx/1.10.3 (Ubuntu)
< Date: Mon, 11 Dec 2017 10:30:47 GMT
< Content-Type: text/html; charset=utf-8
< Content-Length: 0
< Connection: keep-alive
< Location: /login/?next=/app1/
< X-Frame-Options: DENY
< Vary: Cookie
Nginx会按照位置链接,但是,因为这个位置不是/ app1 / login /?next = / app1 /所以它无法将请求发送到uwsgi。相反,它试图在其根目录中找到login /?next = / app1 / local。
如何使用正确的前缀重写重定向响应?应该在nginx端配置还是在uwsgi端配置?