用nginx-gridFS读取MongoDB的图片
jopen
10年前
nginx-gridfs是一个nginx的扩展模块,用于支持直接访问MongoDB的GridFS文件系统上的文件并提供 HTTP 访问。
一、安装mongodb
创建/etc/yum.repos.d/mongodb.repo文件,配置文件内容如下:
[mongodb] name=MongoDB Repository baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/ gpgcheck=0 enabled=1
安装mongodb server及mongodb shell。
$ sudo yum install mongodb-org-server-2.6.3 mongodb-org-shell-2.6.3
配置mongodb的数据存储路径。
# mkdir /data/mongodb # chown mongod:mongod /data/mongodb
修改/etc/mongod.conf配置的路径指向。
# 配置数据库存储路径 dbpath=/data/mongodb
启动mongo服务
$ sudo chkconfig mongod on $ sudo service mongod restart
二、安装nginx及nginx-gridfs
依赖库、工具
# yum -y install pcre-devel openssl-devel zlib-devel # yum -y install gcc gcc-c++
下载nginx-gridfs源码
# git clone https://github.com/mdirolf/nginx-gridfs.git # cd nginx-gridfs # git checkout v0.8 # git submodule init # git submodule update
下载nginx源码,编译安装。
# wget http://nginx.org/download/nginx-1.4.7.tar.gz # tar zxvf nginx-1.4.7.tar.gz # cd nginx-1.4.7 # ./configure --with-openssl=/usr/include/openssl --add-module=../nginx-gridfs/ # make -j8 && make install -j8
修改/usr/local/nginx/conf/nginx.conf配置文件。
location /static/ { gridfs qrcode field=_id type=objectid; #这里的mongo以slave模式启动会有问题? mongo 127.0.0.1:27017; }
启动nginx服务
# /usr/local/nginx/sbin/nginx
三、测试
上传图片。
# sudo mongofiles put --host localhost --port 27017 --db qrcode --local ~/photo.jpg --type jpg
在浏览器里输入http://localhost/static/53db05cab177550d8613176f能打开图片就说明成功了