13

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

4

2 回答 2

6

学习如何部署 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在 Django 文件中将 Apache2 配置与您的 Django 项目关联这句话wsgi.py,您将看到project.settings包含在内,这就是它的工作原理

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

*.conf --> wsgi.py --> settings.py --> urls.py 和应用程序

只需在 Google 中搜索ubuntu django server mod_wsgi并自己学习!

于 2014-04-20T04:54:55.890 回答
4

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

至少在 gunicorn 上服务:

$ 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(就像任何其他应用程序一样)本身就是一个世界,掌握它需要时间。但是永远不要在生产中运行开发服务器。

于 2014-04-19T23:08:43.080 回答