微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – 如何代理在docker容器中运行的dotnet核心应用程序的每个请求

我正在努力从一个运行在docker容器代理http请求上的web api获取我的http调用.我已经使用bash通过代理成功到达了所需的端点

docker exec -i -t 665b4a1e17b6 /bin/bash

http_proxy=http://exampleProxy:7777 curl -s http://endpoint

现在我想从在同一容器上运行的应用程序中重新创建它

我尝试过以下方法

> dotnet core proxy

loggerFactory.AddConsole(Configuration.GetSection("Logging"));
    loggerFactory.AddDebug();

    app.UseMvc().RunProxy(new ProxyOptions
    {
        Scheme = "http",Host = "example",Port = "7777"
    });

>在创建容器时设置http_proxy环境变量

export http_proxy=http://example:7777

>使用httpclienthandler

var handler = new httpclienthandler
{
    Proxy = new WebProxy("http://example:777)
};
var client = new HttpClient(handler);
etc....

谁能想到设置代理的其他方法?或者有关如何调试的建议?

解决方法

我不是一个dotnet专家,不知道你的应用程序是如何运行的,所以我假设你像普通的Nginx一样运行你的应用程序.
我建议你像这样运行你的应用程序sh -c your_app,这意味着你可以将你的docker cmd设置为sh -c your_app.

希望这能解决你的问题.

顺便说一句,这个问题与kubernetes无关,你可能有一个错误标签;)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐