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 条评论

发表回复

Avatar placeholder

您的邮箱地址不会被公开。 必填项已用 * 标注