首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何让我的Go (Golang)程序通过我公司的代理服务器访问宇宙数据库(使用MongoDB API)?

如何让我的Go (Golang)程序通过我公司的代理服务器访问宇宙数据库(使用MongoDB API)?
EN

Stack Overflow用户
提问于 2021-12-15 18:50:43
回答 1查看 201关注 0票数 0

我正在开发一个应用程序(用Go/Golang编写,使用“正式”MongoDB驱动程序),它必须访问MongoDB和Cosmos/Azure (使用MongoDB API)中的MongoDB数据库。我使用Studio3T来帮助完成数据库任务,我的应用程序作为命令行实用工具运行,在iTerm中作为bash运行。

我能够访问MongoDB数据库--其中一个在我的Mac上本地运行,另两个在防火墙后面的公司服务器上(我的Mac几乎总是在公司VPN上运行)。这是在Azure的宇宙实例,一直在挑战连接。

我从Azure门户获得了必要的宇宙连接信息,并试图在Studio3T和我的应用程序中创建连接设置。起初,两者都不起作用,但当我在Studio3T中手动设置代理设置以使用常规代理服务器时,它就能够连接到Cosmos实例了。我的应用程序,另一方面,仍然不能连接,说服务器是未知的。

我在我的应用程序中尝试了多个连接字符串的排列--包括一个镜像Studio3T生成的连接字符串的排列--如下所示:

代码语言:javascript
复制
mongodb://<user>:<pw>@<host>:<port>/admin?ssl=true&replicaSet=<repSet>&readPreference=primary&maxIdleTimeMS=120000&connectTimeoutMS=10000&authSource=admin&authMechanism=SCRAM-SHA-1

(括号中的项设置与在Studio3T中工作的值完全相同)

令人困惑的是,我的Mac被全局设置为使用相同的代理服务器,设置与我在Studio 3T中的设置完全相同,而启动我的应用程序的shell/bash环境将http_ proxy /https_proxy变量设置为完全相同的设置,但仍然无法工作。而且,我能够在Mac上访问各种基于Internet的外部资源,而且只有Azure中的这个特定的宇宙实例是不可访问的(即使这样,它也只能访问我的Go程序,而不是运行在同一台机器上并使用完全相同设置的Studio3T实例)。

这是一个经典的“说出神奇的词”的问题,这类事情让我希望我去了烹饪学校,而不是开始编写软件。

所以,我的问题是:

  1. 当Studio 3T看到使用自定义代理服务器启用的设置时,它会做什么?在Studio3T中是否有某种内部逻辑允许其MongoDB连接使用这些设置来发现基于Azure的宇宙实例?我注意到由Studio 3T生成的URI具有以下参数: 3t.proxyType=custom、3t.proxyProtocol=htttp、3t.proxyHost、3t.proxyPort,我假设它们是Studio3T特有的,但显然必须是Studio3T用来指示其代理处理行为的东西。
  2. 有什么东西我可以添加到我的围棋程序,将“设置舞台”的驱动程序试图连接到宇宙,以便它连接到宇宙实例,如Studio3T能够?
  3. 有什么环境设置我可以调整(包括在网络首选项中的MacOS级别全球设置的任何设置),可以帮助我的应用程序导航我们的代理服务器并连接到Cosmos?

如果你能给我任何见解/建议/帮助,我们将不胜感激.

EN

回答 1

Stack Overflow用户

发布于 2021-12-15 19:43:02

代理地址如下所示

http://USER:PASSWORD@COMPANY.EXAMPLE.TLD:PORT

或者类似的东西

http://aiw1dak1:powalkmd1@my.internal.company.local:8571

这是您需要在mac计算机中设置的东西,以便能够通过代理进行连接,例如

export http_proxy = http://aiw1dak1:powalkmd1@my.internal.company.local:8571

更多信息在这里:https://www.serverlab.ca/tutorials/osx/administration-osx/configuring-a-network-proxy-for-osx/

这应该通过代理设置每个网络请求,包括MongoDB。

您还可以转到网络设置并配置网络的代理设置以自动发出请求,您还可以请求您的公司给您一个WPAD文件

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70368899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档