【问题标题】:Deploying multiple Django projects, or apps?部署多个 Django 项目或应用程序?
【发布时间】:2014-06-19 00:01:28
【问题描述】:

我刚刚在我的 nginx 服务器上安装了 Django,并部署了一个存在于域根级别的项目:mydoman.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 实例,共享相同的站点包文件夹。这两个项目都需要 django-storages 和 django-memcached 等模块。

【问题讨论】:

    标签: python django nginx


    【解决方案1】:

    好吧。首先,可以构建一个应用程序with multiple databases。仅供参考。但我建议你使用不同的应用程序。真的。

    是的,你可以,很容易,因为 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 套接字文件进行部署。因此,您在 /one/ locaton(url) 上有一个 uwsgi-djangoapp 实例,而在另一个上则不同。

    【讨论】:

    • 那么每个项目会被完全包含,而我所要做的就是将每个项目上传到服务器吗?
    • 你应该做更多的步骤:上传django应用程序,创建数据库,同步和迁移,创建uwsgi配置文件来启动它的worker(uwsgi_pass接收到worker socket文件的路径),collectstatic,重启uwsgi。另外,不要忘记将 static 映射到 /one/static 之类的位置,并在您的应用中假定此前缀!
    猜你喜欢
    • 2018-02-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-04
    • 2015-01-06
    相关资源
    最近更新 更多