django 學習筆記 11 部署Django

2021-05-22 17:12:10 字數 2613 閱讀 2453

如果 debug 模式被開啟. 例如, 如果

debug 被設定成 true , 那麼:

首先, 改變你的admins 設定用來引入你的e-mail 位址, 以及那些任何需要被注意的聯絡人的e-mail 位址。 這個設定採用了類似於( 姓 名, email) 元組, 像這樣:

admins = (

(『john lennon』, 『[email protected]』),

(『paul mccartney』, 『[email protected]』), )

第二, 確保你的伺服器配置為傳送 電子郵件。 設定好postfix,sendmail 或 其他本書範圍之外但是與django 設 置相關的郵件伺服器, 你需要將將 email_host 設定為你的郵件伺服器的正確 的主機名. 預設模式下是設定為』localhost』, 這個設定對大多數的共享 主機系統環境適用. 取決於你的安排的 複雜性, 你可能還需要設定email_host_user,email_host_password,email_port 或email_use_tls 。你還可以設定email_subject_prefix 以控制django 使用的 error e-mail 的字首。 預設情況下它被設定為『[django] 『

最終, 最精簡的達到兩個配置環境 設定的方案是使用乙個配置檔案, 在此配 置檔案中根據不同的環境進行設定。 乙個達到這個目的的方法是檢查當前的主機名。 例如:

# settings.py

import socket

if socket.gethostname() == 『my-laptop』:

debug = template_debug = true

else:

debug = template_debug = false

# …

在這裡, 我們從python 標準庫匯入了socket 模組, 使用它來檢查當前系統的主機名。 我們可以通過檢查主機名來確認**是否執行在產品伺服器上。

django_settings_module 是 你的配置檔案的python 的路徑

loadmodule python_module /usr/lib/apache2/modules/mod_python.so

sethandler python-program

pythonhandler django.core.handlers.modpython

setenv django_settings_module mysite.settings

pythondebug off

pythonpath 「['/path/to/project', '/path/to/django'] + sys.path」

只要像下面這樣使用 virtualhost 你 可以實現:

namevirtualhost *

servername www.example.com

# …

setenv django_settings_module mysite.settings

servername www2.example.com

# …

setenv django_settings_module mysite.other_settings

只要 加入maxrequestsperchild 1 到配置檔案中強制 apache 在每個請求時都重新載入所有的 **。

sethandler none

如何把一台伺服器擴充套件為乙個大規模的伺服器集群

對於django 來說, 把資料庫伺服器分離開來很容易: 只需要簡單地修改 database_host , 設定為新的資料庫服 務器的ip 位址或者dns 網域名稱。 設定為ip 位址總是乙個好主意, 因為使用dns 網域名稱, 還要牽涉到dns 伺服器的可靠性連線問題。

使用單機伺服器仍然留下了乙個大問題: 處 理動態內容的**資源, 也是在同一台機 器上完成的。

django 的admin 管理介面需要能夠獲得足夠的許可權來處理上 傳的**( 通過設定media_root ) 。如果**資源在另外的一 臺伺服器上, 你需要獲得通過網路寫操作 的許可權。 如果你的應用牽

涉到檔案上載,django 需要 能夠面向**伺服器撰寫上載** 如果**是在另外一台伺服器上的, 你需要部署一種方法使得django 可以通過網路去寫這些**。

你還需要另乙個軟體來幫助你在多台伺服器之間均衡網路流量: 流量均衡器(load balancer)

apaches 的 mod_proxy 是乙個可以考慮的選擇, 但另乙個配置更棒的選擇是: memcached 是同乙個團隊的人寫的乙個負 載均衡和反向**的程式.( 見第15 章)

大多數的web 伺服器90% 的時間都浪費在了硬碟io 上。 當硬碟上的資料開始交換, 效能就急劇下降。 更快速的硬碟可以改善這個問題, 但是比起ram 來說, 那太貴了。

如果你擁有多台伺服器, 首要的是 要在資料庫伺服器上增加記憶體。 如果你能負擔得起, 把 你整個資料庫都放入到記憶體中。 這應該不是很困難, 我 們已經開發過乙個站點上面有多於一百萬條報刊文章, 這 個站點使用了不到2gb 的空間。

下一步, 最大化web 伺服器上的記憶體。 最理想的情況是, 沒有一台伺服器進行磁碟交換。 如果你達到了這個水平, 你就能應付大多 數正常的流量。

docker 學習筆記2 部署

dockert是cs架構,由docker程式提供。daemon 啟動只監聽本地unix套接字。啟動映象為乙個容器時,會建立乙個容器可寫層 映象為唯讀 容器和映象的關係,類似程序和程式的關係。乙個程式可以啟動n個程序,程式是靜態的,程序有生命週期是可啟動可銷毀的 倉庫然後通過tag,提供nginx的各...

IIS8部署Django專案

之前和同伴使用django做了乙個小 想將這個 部署到真實的生產環境中,測試穩定性與可用性,於是租用了乙個雲伺服器,並將django部署到上面的iis中。首先確保自己的django 在伺服器上可以通過命令列 runserver 正常執行。在伺服器管理器中,新增角色與功能 新增角色與功能,其中cgi元...

django1 6部署實現hello

環境為ubuntu14 destop。2 在目錄 home cloud downloads 下解壓,命令tar zxvf django1.6.tar.gz。解壓後生成資料夾django1.6,3 cd進入django1.6資料夾,用命令安裝 python setup.py install。4 在目錄...