请不要再无条件推荐Nginx-gridfs插件访问MongoDB
经过半天的折腾,终于得出了结论,出于安全性考虑,我非常不推荐nginx-gridfs插件访问mongodb。
单位最近做一个项目,内容是通过Nginx浏览插入MongoDB的图片,目前MongoDB的版本是4.2.1,自然想到最简单的实现方法是通过nginx-gridfs插件访问mongodb。
环境
CentOS7
Nginx_1.6.1
MongoDB_4.2.1
安装配置网上铺天盖地,配置简单,但通过访问URL总是无法显示图片,而且静态HTML也无法打开访问了。重新安装了N遍,并且确认了模块正常的情况下,查看Nginx的错误日志
提示MongoDB验证用户名密码错误,应该是这个地方导致的。从MongoDB 3.0开始更换了密码验证算法,感觉是这个地方导致的,也就是说这种网上铺天盖地宣传的方法都是错误的?不死心,所以,又找到几个用最新最新 MongoDB 4版本的文章,发现这些文章都是一样,没有打开 MongoDB 的账户验证,其实我觉得这些文章至少应该写个说明——本文章不适合开启MongoDB验证,如果要开启,请使用MongoDB3.0以前版本。自己之前踩的坑,可以不浪费大家的时间。
再次回到nginx-gridfs主页
https://github.com/mdirolf/nginx-gridfs,搜索看看,也发现了一些端倪
作者已经说了,不会积极维护这个项目了,然后再看看这个项目的文件列表
都是6、7年前就不动了,甚至还有10年前的。
如果你的MongoDB去掉密码验证,你是能用这个插件的,但是连MongoDB官方都不推荐的非安全连接方法,大家用着心里不打鼓吗?之前业界有因使用非密码验证的MongoDB,导致数据库被锁,要求用比特币赎回的惨案还历历在目呢。在者,4.2.1版本的MongoDB(其他版本未测试)如果不开启验证,会报警告的,对于我这种强迫症患者是无法忍受的。
所以,结论就是——请不要再无条件推荐Nginx-gridfs插件访问MongoDB,至少应该告诉大家此方法的限用范围,让大家少走弯路。Nginx-gridfs插件只支持 MongoDB3 以下版本。
原创文章辛苦,欢迎大家关注,点赞,转发。