首页 > 解决方案 > 使用 IIS 使用反向代理访问 Mongo DB

问题描述

我们正在尝试使用 IIS 中的反向代理设置访问 mongo 数据库。

按照此处提供的说明在 IIS 中设置反向代理。

作为入站规则的一部分,我们以以下格式提供 Mongo DB 服务器详细信息:Mongoservername:27017。

但是我们无法使用设置反向代理的 IIS 网站连接到 mongodb。

错误详情:

NETWORK [js] recv():消息 msgLen 1347703880 无效。最小 16 最大:48000000

NETWORK [js] DBClientConnection 无法从 Servername:port 接收消息 - ProtocolError: recv(): message msgLen 13477038 80 无效。最小 16 最大:48000000

E QUERY [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吗?

提前致谢。

标签: mongodbiisreverse-proxy

解决方案


IIS URL 重写不处理 tcp 连接。能够使用 Nginx 流实现。


推荐阅读