nginx + mongodb gridfs 实现web浏览文件

来源:互联网 发布:json空值 编辑:程序博客网 时间:2024/05/18 12:37
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





0 0
原创粉丝点击