2014-04-19 44 views
1

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

+1

我不知道你怎么可能问这个问题,因为在文档中所有非常明确和大胆的方向关于在生产中从不使用开发服务器。 –

+3

这里有很多讨厌的东西,但我认为这是一个很有价值的问题 - 我读过的文档没有解释为什么你需要一个web服务器,gunicorn等,并且因为我可以在没有人的情况下服务于我的开发服务器,所以很有趣他们提供的是如此必要的。 – owencm

+0

我也不明白为什么没有人能提供超出“不要”的适当答案。在不理解基本原理的情况下接受词汇是否是一个好主意? –

回答

0

不要在生产中使用dev服务器。不要。

至少,服务于它关闭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的(就像任何其他应用程序)是世界本身,掌握它需要时间。但是千万不要运行生产中的开发服务器。

+2

你能解释一下为什么我需要gunicorn和nginx或apache吗?我对此表示赞同,但我想了解他们提供给我的东西。 – owencm

+1

为什么不在非常小规模的场景中使用开发服务器?请添加说明。请参阅http://serverfault.com/q/717568/134848。 – becko

4

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

起初,你应该知道如何,如果你使用Ubuntu

sudo apt-get install apache2 libapache2-mod-wsgi 

Fedora(红帽)(没有测试)

yum install httpd mod_wsgi 

安装Apachemod_wsgi

然后,,你应该知道如何Apache2中Django项目关联

<VirtualHost *:80> 
    ServerName example.com 
    ServerAdmin [email protected] 

    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> 

与Django项目 句子WSGIScriptAlias副Apache2的配置在Django wsgi.py文件,你会看到project.settings包括在内,这是它如何工作的

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

* .conf文件 - > wsgi.py - > settings.py - > urls.py和应用

只需在Google上搜索,就像ubuntu django server mod_wsgi一样,自己学习吧!

相关问题