繁体   English   中英

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

[英]How do I proxy every request from a dotnet core app running in a docker container

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

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

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

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

我尝试过以下方法:

  1. dotnet核心代理

      loggerFactory.AddConsole(Configuration.GetSection("Logging")); loggerFactory.AddDebug(); app.UseMvc().RunProxy(new ProxyOptions { Scheme = "http", Host = "example", Port = "7777" }); 
  2. 在创建容器时设置http_proxy环境变量

      export http_proxy=http://example:7777 
  3. 使用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无关,你可能有一个错误的标签;)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM