MongoDB在网站中使用较多,主要使用它来存储静态文件,例如图像文件,因此在这一讲我们将来认识一下nginx-gridfs模块,使用该模块来实现对MongoDB的访问,实际上就是MongoDB的客户端。在具体的安装中要注意它和数据库驱动的版本问题,有时候不是很好安装。
原文链接http://space.itpub.net/?uid-27043155-action-viewspace-itemid-732084
安装nginx-gridfs模块
下面我们首先来下载并且安装该模块。
下载nginx-gridfs模块
[root@mail ~]# wget https://nodeload.github.com/mdirolf/nginx-gridfs/tarball/master --17:20:24-- https://nodeload.github.com/mdirolf/nginx-gridfs/tarball/master Resolving nodeload.github.com... 207.97.227.252 Connecting to nodeload.github.com|207.97.227.252|:443... connected. HTTP request sent, awaiting response... 200 OK Length: 19079 (19K) [application/octet-stream] Saving to: `mdirolf-nginx-gridfs-v0.8-11-ge5d8cc7.tar.gz'
100%[=================================>] 19,079 24.2K/s in 0.8s
17:20:28 (24.2 KB/s) - `mdirolf-nginx-gridfs-v0.8-11-ge5d8cc7.tar.gz' saved [19079/19079]
|
解压下载包
[root@mail ~]# tar -zxvf mdirolf-nginx-gridfs-v0.8-11-ge5d8cc7.tar.gz |
下载mongodb驱动
[root@mfs2 ~]# wget https://nodeload.github.com/mongodb/mongo-c-driver/tarball/master --19:37:12-- https://nodeload.github.com/mongodb/mongo-c-driver/tarball/master => `master' Resolving nodeload.github.com... 207.97.227.252 Connecting to nodeload.github.com[207.97.227.252]:443... connected. HTTP request sent, awaiting response... 200 OK Length: 77,331 [application/octet-stream]
100%[===============================>] 77,331 57.55K/s
19:37:19 (57.47 KB/s) - `master' saved [77,331/77,331] |
错误的保存为 master,因此需要重命名:
[root@mfs2 ~]# mv master mongodb-mongo-c-driver-v0.4-17-g68aa48e.tar.gz |
解压数据包
[root@mfs2 ~]# tar -zxvf mongodb-mongo-c-driver-v0.4-17-g68aa48e.tar.gz |
将mongodb数据库驱动移动到nginx-gridfs模块下面的mongo-c-driver/目录
[root@mfs2 mongodb-mongo-c-driver-68aa48e]# mv ./* /root/ \ > mdirolf-nginx-gridfs-e5d8cc7/mongo-c-driver/ |
编译安装
[root@mfs2 nginx-1.0.10]# ./configure --prefix=/usr/local/nginx-1.0.10-gridfs \ > --add-module=/root/mdirolf-nginx-gridfs-e5d8cc7 |
注意:
如果在make时产生以下错误而停止编译:
cc1: warnings being treated as errors |
那么找到Makefile文件,将 -Werror 选项删除就可以了
配置示例
例1、
location /gridfs/ { gridfs my_app; } |
例2、
location /gridfs/ { gridfs my_app field=filename type=string; mongo 127.0.0.1:27017; } |
例3、
location /gridfs/ { gridfs my_app field=filename type=string; mongo "foo" 10.7.2.27:27017 10.7.2.28:27017; } |
例4、
location /gridfs/ { gridfs my_app root_collection=pics field=_id type=int user=foo pass=bar; mongo 127.0.0.1:27017; } |