通过python manage.py runserver将django部署到VPS上的生产

时间:2014-04-19 23:06:02

标签: python django django-deployment

我已经为我的django应用购买了VPS。我从来没有部署过django或任何其他应用程序。我已经阅读了一些关于如何使用apache和wsgi以及其他一些选项使用gunicorn,ngix来部署django的教程。对我而言,这一切似乎都非常令人沮丧和难以理解。我想知道如果我通过将debug更改为false来部署我的应用程序,创建数据库,插入它然后只是运行python manage.py runserver my-ip会发生什么。 这是一种不好的做法吗?

2 个答案:

答案 0 :(得分:5)

学习如何部署Django项目很容易。

首先,您应该知道如何安装Apachemod_wsgi

如果您使用Ubuntu

sudo apt-get install apache2 libapache2-mod-wsgi

Fedora(红帽)(未经测试)

yum install httpd mod_wsgi

那么,你应该知道如何将Apache2与你的Django项目联系起来

<VirtualHost *:80>
    ServerName example.com
    ServerAdmin example@example.com

    Alias /media/ /home/tu/blog/media/

    <Directory /home/tu/blog/media>
        Require all granted
    </Directory>

    WSGIScriptAlias / /home/tu/blog/blog/wsgi.py

    <Directory /path/to/django/project/wsgifile>
    <Files wsgi.py>
        Require all granted
    </Files>
    </Directory>
</VirtualHost>

句子WSGIScriptAlias将Apache2配置与您的Django项目相关联 在Django wsgi.py文件中,您会看到project.settings包含,它是如何工作的

以下可能很容易理解它是如何工作的

* .conf - &gt; wsgi.py - &gt; settings.py - &gt; urls.py和apps

只需在Google中搜索ubuntu django server mod_wsgi,然后自行学习!

答案 1 :(得分:1)

不要在生产中使用开发服务器。只是不要。

至少为枪支服务:

$ pip install gunicorn
$ cd your_project
$ gunicorn project.wsgi  # gunicorn now runs locally on port 8000

将nginx(或apache)作为反向代理:

server {
    location / {
        proxy_pass http://127.0.0.1:8000;
    }
}

部署Django(就像任何其他应用程序一样)本身就是一个世界,掌握它需要时间。但是,不要在生产中运行开发服务器。