GridFS是一种将大型文件存储在MongoDB的文件规范。所有官方支持的驱动均实现了GridFS规范。GridFS的一个优点是可以存储上百万的文件而无需担心扩容性
GridFS的部署的选择方案不多,大概有以下几种:
1、通过mongo client的script,比如PHP/JAVA
优点:简单,可以直接通过脚本去解决文件的输出问题
缺点:每次都要读取mongo数据库,并且无法支持断点续传
2、使用nginx-gridfs模块
nginx-gridfs是一个nginx的一个第三方模块插件,可以用来连接mongo,直接通过nginx访问mongo gridfs中的文件。
优点:由于直接通过nginx,速度是最快的.
编译安装nginx-gridfs:
nginx目前需要通过编译安装的方式,添加nginx-gridfs模块的支持,首先下载需要的安装包:
nginx:http://nginx.org/download/nginx-1.4.7.tar.gz
nginx-gridfs:https://github.com/mdirolf/nginx-gridfs.git
编译安装的脚本:
#!/bin/bash echo '切换目录到nginx-1.4.7' cd nginx-1.4.7 echo '编译安装nginx添加gridfs模块' ./configure --prefix=/usr/share/nginx --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --error-log-path=/var/log/nginx/error.log --http-log-path=/var/log/nginx/access.log --http-client-body-temp-path=/var/lib/nginx/tmp/client_body --http-proxy-temp-path=/var/lib/nginx/tmp/proxy --http-fastcgi-temp-path=/var/lib/nginx/tmp/fastcgi --http-uwsgi-temp-path=/var/lib/nginx/tmp/uwsgi --http-scgi-temp-path=/var/lib/nginx/tmp/scgi --pid-path=/var/run/nginx.pid --lock-path=/var/lock/subsys/nginx --user=nginx --group=nginx --add-module=../gridfs/ make && make install echo '添加nginx服务到/etc/init.d/目录' cp ../nginx /etc/init.d service nginx restart exit
关于脚本中的nginx文件可以从附件中下载
转载于:https://blog.51cto.com/suiwnet/1567633