我为我的 django 应用程序购买了一个 VPS。我以前从未部署过 django 或任何其他应用程序。我已经阅读了一些关于如何使用 apache 和 wsgi 以及其他一些选项 gunicorn、ngix 部署 django 的教程。对我来说,这一切似乎都非常令人沮丧和难以理解。我想知道如果我通过将 debug 更改为 false、创建数据库、将其插入然后简单地运行 python manage.py runserver my-ip 来部署我的应用程序会发生什么。这是一个不好的做法吗?
问问题
11246 次
2 回答
6
学习如何部署 Django 项目很容易。
首先,您应该知道如何安装Apache
和mod_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 回答