新聞中心
在本地運(yùn)行django應(yīng)用相對來說還是挺方便的,使用自帶的runserver啟動即可。如果在生產(chǎn)環(huán)境部署django,就要多考慮一些問題了。比如靜態(tài)文件處理,安全,效率等等
在網(wǎng)上找到了不錯的部署的教程,講解的還是很詳細(xì)的,我就不重新再整理了。
五步教你實(shí)現(xiàn)使用Nginx+uWSGI+Django方法部署Django程序(上) – Django中國社區(qū)
五步教你實(shí)現(xiàn)使用Nginx+uWSGI+Django方法部署Django程序(下) – Django中國社區(qū)
但是作為記錄,我還是要記錄下部署中遇到的問題:
(一)解決Django生產(chǎn)環(huán)境部署的靜態(tài)文件丟失問題
有些時候,把程序放在生產(chǎn)環(huán)境,不過出于一些原因還沒有配置nginx等環(huán)境,關(guān)閉了Debug,想看看網(wǎng)站,這時會出現(xiàn)靜態(tài)文件無法訪問,界面一塌糊涂的情況。使用如下命令即可成功使用靜態(tài)文件
python manage.py runserver 0.0.0.0:8000 --insecure
(二)部署生產(chǎn)環(huán)境之前的準(zhǔn)備
正如(一)中的方法只是測試時使用,如何處理靜態(tài)文件,其實(shí)需要交給nginx等這樣的高效軟件來完成,所以在配置之前,先使用
python manage.py collectstatic
用來收集靜態(tài)文件到static文件夾,然后就可以參照上面的教程,通過nginx來分配使用。
另外,推薦使用lnmp一鍵安裝腳本,這樣nginx,mysql等很多東西就不用設(shè)置了。
(三)重啟uwsgi腳本
在上面的教程中提到的uwsgi,每一次修改程序后都應(yīng)該重啟uwsgi來使修改生效。在manage.py同級目錄新建restart.sh腳本,內(nèi)容如下:
killall uwsgi
uwsgi -x django_socket.xml
(這個django_socket.xml根據(jù)你起得名字替換)
—————-
這之后就是關(guān)于pythonic程序的一些修改:
這個程序是github上的一個開源django論壇程序。還是很不錯的。
不過github上的版本還是有點(diǎn)點(diǎn)問題的。已經(jīng)Fork了,但懶的忙的沒時間去修改,就先在博客記錄下。
(1)settings.py中應(yīng)添加DOMAIN = ‘127.0.0.1’ (根據(jù)實(shí)際填寫IP或域名)
(2)LOGO的路徑問題,修改templates目錄下的base.html模板,添加static
(3)注冊APP問題。
在accounts和people模塊中的URL配置中,把a(bǔ)ccounts.views改為apps.accounts.views
OK,修改完畢。
雖然還有一些小問題,到時再讀讀源碼估計(jì)就可以解決了。
其實(shí)安全問題還是比較重要的,admin直接暴露出來不是很好,接下來研究研究,看看是更改登陸admin的地址還是禁止IP段。
嗯,希望一切順利~
文章題目:生產(chǎn)環(huán)境使用Nginx+uwsgi部署Django-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://fisionsoft.com.cn/article/dccohc.html