我有一个使用WebClient
导航到某些外部网页的应用程序。
在这个应用程序的顶部,我有一个HAProxy
,它使请求负载平衡到5个linux主机(每个主机都有一个有效的IP地址)。
它的工作。但问题是HAProxy仅在关闭应用程序时更改外部IP(客户端发送TCP重置,因此TCP隧道已关闭)。
目标是在每个http请求中,应用程序通过不同的ip发送它。我怎么能这样做?
示例代码:
for (var i = 0; i < 2; i++)
{
using (var client = new WebClient())
{
//Even if i create a new WebClient and dispose,
//under the hood it uses the same socket, so myexternalsite01 and 02
//are hitted with the same ip until i close the application.
client.DownloadString("http://myexternalsite01.com");
client.DownloadString("http://myexternalsite02.com");
}
}
app.config
<system.net>
<defaultProxy>
<proxy usesystemdefault="False" proxyaddress="http://proxy.local:3128" bypassonlocal="False" />
</defaultProxy>