我们正在尝试使用IIS中的反向代理设置访问mongo数据库。
按照here提供的说明在IIS中设置反向代理。
作为入站规则的一部分,我们以以下格式提供Mongo DB服务器详细信息:Mongoservername:27017。
但是我们无法使用设置了反向代理的IIS网站连接到mongodb。
错误详细信息:
NETWORK [js] recv():消息msgLen 1347703880无效。最少16名:48000000
NETWORK [js] DBClientConnection无法从Servername:port接收消息-ProtocolError:recv():消息msgLen 1347703880无效。最少16名:48000000
E查询[js]错误:尝试在主机'servername:port'上运行命令'isMaster'时出现网络错误:connect@src/mongo/shell/mongo.js
使用的命令:
Mongo --host --port --user用户--password密码(配置IIS反向代理的服务器名称)
反向代理设置:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="ReverseProxyInboundRule1" stopProcessing="true">
<match url="(.*)" />
<action type="Rewrite" url="{C1}://mongoserver:27017/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
但是,当访问以下URL时:在浏览器上,我们收到以下消息:看起来您正在尝试通过本机驱动程序端口上的HTTP访问MongoDB。
我们可以用这种方法实现访问mongodb吗?
提前感谢。
IIS URL重写不处理tcp连接。能够使用Nginx流来实现。