nginx的 - 多个Django应用程序相同的域不同的URL(nginx - multiple d

2019-10-28 17:31发布

我想为多个Django项目(实际上Django的休息API的应用程序)在一个域名,但服务于每个人的分离式上的网址。 像这样:

  1. http://test.com/app1/ ...
  2. http://test.com/app2/ ...

等等。 我将使用nginx的到config它。 但我面对的是希望你帮助一些问题:

  1. 这些应用应该有彼此不同的cookie。 因为他们有不同的身份验证系统。 所以令牌和饼干在一个无效另一个。 如何来处理呢?
  2. 你推荐什么nginx的CONFIGS。

注意:

我不想全部细节,因为我知道的概念。 只是一些提示和有用的命令就可以了。

更新:

例如我有具有URL的Django应用程序test 。 我想与服务器送达该路径/app1/test 。 问题是,当发送请求/app1/test ,Django不将其识别为/test ,而不是如/app1/test和因为/app1不urls.py注册会给404错误。

这里是我的nginx的配置示例:

server {
listen 80;
server_name test.com;

location /qpp1/ {
    include uwsgi_params;
    proxy_pass http://unix://home//app1.sock;
}

location /qpp2/ {
    include uwsgi_params;
    proxy_pass http://unix://home//app2.sock;
}
}

Answer 1:

你可以试试一起玩proxy_cookie_path指令:

server {

    ...

    location /app1/ {
        proxy_cookie_path / /app1/;
        proxy_pass http://backend1/;
    }

    location /app2/ {
        proxy_cookie_path / /app2/;
        proxy_pass http://backend2/;
    }
}

更新

这里是configuraion测试的另一种变体。

upstream qpp1 {
    server unix:/home/.../app1.sock;
}

upstream qpp2 {
    server unix:/home/.../app2.sock;
}

server {
    listen 80;
    server_name test.com;

    location /qpp1/ {
        include uwsgi_params;
        proxy_cookie_path / /qpp1/;
        proxy_pass http://qpp1/;
    }

    location /qpp2/ {
        include uwsgi_params;
        proxy_cookie_path / /qpp2/;
        proxy_pass http://qpp2/;
    }
}


文章来源: nginx - multiple django apps same domain different Urls