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

我不知道标题怎么写,就这样吧。。。

部署方案:

Nginx: 处理静态文件和代理

Apache: 作为后端,主要负责动态响应(其实fastCGI是个更好的选择)

目录结构:

DIR: /home/www/

    |--> django_site: 作为Django项目的根目录

    |--> public_html: 默认根目录,php及html文件放在这里

    |--> static_files: 静态文件,包括js/css/img等等

    |--> web_logs: 日志文件,Nginx和Apache的都放在里面

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做短网址服务也是很方便的。

:)

Nginx + Apache + Django/python + rockmongo/php ..._第1张图片

你可能感兴趣的:(apache,mongodb,nginx,django,RockMongo)