2014-04-19 42 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一樣,自己學習吧!

相關問題