Nginx + Apache + Django/python + rockmongo/php ...

我不知道標題怎麼寫,就這樣吧。。。php

部署方案:css

Nginx: 處理靜態文件和代理html

Apache: 做爲後端,主要負責動態響應(其實fastCGI是個更好的選擇)python

目錄結構:web

DIR: /home/www/數據庫

    |--> django_site: 做爲Django項目的根目錄django

    |--> public_html: 默認根目錄,php及html文件放在這裏後端

    |--> static_files: 靜態文件,包括js/css/img等等網站

    |--> web_logs: 日誌文件,Nginx和Apache的都放在裏面ui

Nginx配置:

    監聽127.0.0.2:80 www.d2s2.com

    默認根目錄 /home/www/public_html/

    目錄 / 若是不是文件的話,直接proxy_pass到upstream django_site (也就是127.0.0.1:8000)

    目錄 /rockmongo/ proxy_pass到127.0.0.1:8080

    目錄 /static/ alias /home/www/static/

    其餘,若是遇到php文件都proxy_pass到127.0.0.1:8080

Apache配置:

    兩個虛擬主機分別爲127.0.0.1:8000, 127.0.0.1:8080

    127.0.0.1:8000經過mod_wsgi(django.wsgi), 負責python環境

    127.0.0.1:8080經過mod_php默認的提供php環境

    PS:用fastCGI代替Apache,其實道理也是同樣的

rockmongo之於MongoDB,就至關於phpMyAdmin之於MySQL。

固然,有個名字更像的叫做phpMoAdmin,好像不太喜歡。

MongoDB如今也有針對Django的數據庫backends,可是功能頗有限。

固然,經過ODM(至關於SQL的ORM), 好比mongo-engine 和 mongokit, 可以實現

大部分的需求. 可是, 我的感受仍是直接pyMongo好用.

 

Django的forms功能很強大, 經過一個應用插件forms_builder基本上能夠知足個人要求.

也就是說我把forms原型保存到MySQL中,包括用戶管理等等,只要是有定型結構的都

將其原型放在MySQL中,而提交的大量數據,包括媒體文件都放到MongoDB中。

還有一個應用插件treemenus, 用它來管理樹狀結構,包括信息分類,網站視圖等等。

若是你想要個博客頁面,用flatpages就夠了。

對於SQL與NoSQL的混合應用,這是個取所長罷了,沒什麼複雜的,需求驅動。

若是是移動設備,你能夠經過REST API訪問或傳送數據到MongoDB,這是一個很方便天然

的途徑。(mongolabs就是這樣作的)

我發現,用MongoDB作短網址服務也是很方便的。

:)

相關文章
相關標籤/搜索