如何在Nginx反向代理中设置MongoDB
嗨,我正在尝试将Nginx设置为访问MongoDB数据库的反向代理.默认情况下,Mongo侦听27017端口.我想做的是通过nginx重定向一个主机名,例如mongodb.mysite.com,并将其传递给mongodb服务器.以这种方式从外部网络我将已知27017端口关闭,并从隐藏的URL访问我的数据库,就像我给出的例子. 所以我试图用这个配置设置Nginx:
所以在这之后,我尝试使用mongo mongo.mysite.com:80命令从我的cmd连接mongo shell,并且我收到以下错误:
另外在Nginx访问日志我得到这个:
有没有人有想法,这里有什么问题?谢谢! 最佳答案
我离开了这个,但是在完成了一些工作之后,我不得不再次面对这个问题,这个解决方案突然出现在我的脑海里!
NGINX基本上是一个HTTP服务器,所以通过以上述方式设置重定向和代理,它将HTTP协议中的所有通信包裹起来.所以发生的错误是,当Mongo期待原始TCP流量时,它正在获得HTTP流量. 因此,解决方案是使用NGINX的新流模块,用于处理原始TCP流量,并将上游服务器设置为指向mongodb实例. 更多信息:NGINX stream module (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |