1.nginx-gridfs插件配置说明(conf/nginx.conf)
- [gridfs]: nginx识别插件的关键字
- [edusns]: 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: mongodb url
参考实例:
location /photo/ { gridfs gridfs root_collection=fs field=filename type=string; #user=eduadmin #pass=eduadmin$123; mongo 192.168.36.6123000; }
注意,如果不指定 field,默认为 MongoDB 的自增ID,且type为int,基于副本集配置
location /photo/ { gridfs my_app field=filename type=string; mongo "foo" 10.7.2.27:27017 10.7.2.28:27017; }
启动nginx:/home/mongo/nginx/bin/nginx
在浏览器里输入http://192.168.36.61/photo/20150315172324.png 能下载图片就说明成功了!
2.注意点
(1)在测试配置时要记住不要将nginx的文件过期缓存时间配置开启了,最好是在配置好服务器以后再做这个工作,否则很容易造成配置错误的假象。
(2)要保证系统启动过程中,MongoDB比nginx先启动,否则nginx-gridfs初始化的时候不能正确链接MOngoDB数据库。
(3)nginx-gridfs的不足:没有实现http的range support,也就是断点续传,分片下载的功能。
gridfs受限于mongodb本身的性能限制,在存储大量数据后写性能下降很快,读并发也不尽如人意。在吞吐峰极限值(6台集群2分片30-40M/s)情况下日志会出现大量。所以,他并不适合作为一个专用的大规模的分布式文件存储系统,但能够满足一般应用级别静态文件存储需求。
0 条评论