nginx + mongodb
参考
http://www.111cn.net/database/MongoDB/116127.htm
1,下载nginx 包
http://nginx.org/en/download.html
nginx-1.11.10.tar.gz
nginx可能需要其他依赖包提前安装,可参考http://blog.csdn.net/grhlove123/article/details/47834673
2,下载nginx-gridfs源码 https://github.com/mdirolf/nginx-gridfs 下载mongo驱动源码 https://github.com/eagleas/mongo-c-driver.git
由于服务器没装git,我用ie下载的zip包后上传到服务器
将包都传到/home/test/software下
3,解压nginx
tar zxf nginx-1.11.10.tar.gz
4,解压nginx-gridfs
unzip nginx-gridfs-master.zip
unzip mongo-c-driver-master.zip
5,两个项目合成一个
将mongo驱动包mongo-c-driver-master里的文件都移动到nginx-gridfs-master/mongo-c-driver下
mv /home/test/software/mongo-c-driver-master/* /home/test/software/nginx-gridfs-master/mongo-c-driver/
6,编译 准备将带gridfs插件的nginx安装到/opt/nginx下
cd /home/test/software/nginx-1.11.10
./configure --prefix=/opt/nginx --add-module=/home/test/software/nginx-gridfs-master
vi /home/test/software/nginx-1.11.10/objs/Makefile //删除-Werror,不然make && make install的时候会报错
cd /home/test/software/nginx-1.11.10
make && make install
7,配置nginx
cd /opt/nginx/conf
vi nginx.conf
增加
location /images/{
gridfs test field=filename type=string;
mongo "testrs"
192.168.8.248:27018
192.168.8.252:27017;
}
gridfs:nginx识别插件的关键字
test:db名
[root_collection]: 选择collection,如root_collection=blog, mongod就会去找blog.files与blog.chunks两个块,默认是fs
[field]: 查询字段,保证mongdb里有这个字段名,支持_id, filename, 可省略, 默认是_id
[type]: 解释field的数据类型,支持objectid, int, string, 可省略, 默认是int
[user]: 用户名, 可省略
[pass]: 密码, 可省略
mongo: 集群名称(集群设置时指定的,前面用的testrs) 集群多个 ip:port
8,启动 /opt/nginx/sbin/nginx
重启命令 /opt/nginx/sbin/nginx -s reload
通过url可以看到图片了http://192.168.8.248/images/apple.jpg
实际上,访问会报错,因为还没往mongodb里上传东西
搞一个图片文件apple.jpg到服务器上,通过命令上传到mongodb。
mongofiles -h 192.168.8.248:27018 -d test put apple.jpg