部署多个Django项目或应用?

1 投票
1 回答
589 浏览
提问于 2025-04-18 10:14

我刚在我的nginx服务器上安装了Django,并且把一个项目部署到了域名的根目录下:mydomain.com/map。我还会在这个服务器上构建其他的Django项目,但它们不会共享同一个数据库,所以它们不能算是同一个项目里的不同应用,对吧?

我能不能在我的网站之间设置一些层次结构?比如说,mydomain.com/map/map_index 和 mydomain.com/map/admin 用于管理部分?然后再像 mydomain.com/votes/vote_index 和 mydomain.com/votes/admin 这样的链接,用于另一个网站的管理部分?

我希望 mydomain.com/map 和 mydomain.com/votes 是两个独立的项目,虽然它们使用的是同一个Django实例,并且共享同一个site-packages文件夹。两个项目都需要一些模块,比如django-storages和django-memcached。

1 个回答

1

好的,首先,你可以用一个应用程序连接多个数据库。只是告诉你一下。不过我建议你还是用不同的应用程序,真的。

没错,你可以做到,而且很简单,因为nginx非常好用!

server {
    listen 80;
    server_name mydomain.com;

    location /one/ {
        include uwsgi_params;
        uwsgi_pass unix:/var/run/uwsgi/one.sock;
        uwsgi_read_timeout 60;
    }

    location /two/ {
        include uwsgi_params;
        uwsgi_pass unix:/var/run/uwsgi/two.sock;
        uwsgi_read_timeout 60;
    }

    ....
}

这个配置假设你是通过uwsgi的socket文件来部署的。所以你在一个位置(网址)上有一个uwsgi-django应用实例,而在另一个位置上有不同的实例。

撰写回答