用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能打开图片就说明成功了