nginx + mongodb gridfs 实现web浏览文件

本文介绍如何搭建带有GridFS插件的Nginx服务器,并与MongoDB集成,实现通过HTTP请求直接访问存储在MongoDB中的文件资源。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/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





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值