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

本文介绍了一种使用Nginx处理静态文件并代理请求,搭配Apache作为后端处理动态响应的部署方案。详细说明了目录结构设置、Nginx与Apache的配置方法,并探讨了SQL与NoSQL数据库混合使用的应用场景。

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

部署方案:

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

:)

转载于:https://my.oschina.net/gurdy/blog/16578

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值