在域子路径上使用nginx提供Django应用程序

时间:2015-12-18 17:47:03

标签: django nginx

我使用 nginx 来提供我的SPA前端和我的 django 后端(REST api)。

我的django后端在http://127.0.0.1:8000与gunicorn一起奔跑。 我的服务器的IP是http://X.X.X.X/

我想从http://X.X.X.X/http://X.X.X.X/api/的后端投放我的前端。

到目前为止,我的前端的nginx配置文件看起来像这样。

server {
    listen   80;
    server_name 0.0.0.0;

    client_max_body_size 4G;

    access_log /var/log/nginx/frontend/access.log;
    error_log /var/log/nginx/frontend/error.log;


    location /api/ {
       proxy_pass http://goa:8000/api/;
       proxy_redirect http://goa:8000/api/ http://$host/api/;
       proxy_set_header SCRIPT_NAME /api;
    }

    location / {
       alias   /var/www/html/goa/;
       try_files $uri $uri/ /index.html;
       proxy_redirect off;
    }
}

我试图遵循这个post

现在的问题是django路由总是路由到/api/,但我的路由不知道这个前缀。因此,如果我转到/api/admin/,django会处理该请求但却找不到/api/admin/,因为它只知道/admin/

我知道我可以在Django本身重写我的路由,但是我想在nginx配置中保留与路由重定向相关的所有内容。

0 个答案:

没有答案