|
@@ -12,18 +12,18 @@ namespace FastGithub.ReverseProxy
|
|
sealed class ReverseProxyMiddleware
|
|
sealed class ReverseProxyMiddleware
|
|
{
|
|
{
|
|
private readonly IHttpForwarder httpForwarder;
|
|
private readonly IHttpForwarder httpForwarder;
|
|
- private readonly HttpClientHanlder httpClientHanlder;
|
|
|
|
|
|
+ private readonly HttpClientFactory httpClientFactory;
|
|
private readonly FastGithubConfig fastGithubConfig;
|
|
private readonly FastGithubConfig fastGithubConfig;
|
|
private readonly ILogger<ReverseProxyMiddleware> logger;
|
|
private readonly ILogger<ReverseProxyMiddleware> logger;
|
|
|
|
|
|
public ReverseProxyMiddleware(
|
|
public ReverseProxyMiddleware(
|
|
IHttpForwarder httpForwarder,
|
|
IHttpForwarder httpForwarder,
|
|
- HttpClientHanlder httpClientHanlder,
|
|
|
|
|
|
+ HttpClientFactory httpClientFactory,
|
|
FastGithubConfig fastGithubConfig,
|
|
FastGithubConfig fastGithubConfig,
|
|
ILogger<ReverseProxyMiddleware> logger)
|
|
ILogger<ReverseProxyMiddleware> logger)
|
|
{
|
|
{
|
|
this.httpForwarder = httpForwarder;
|
|
this.httpForwarder = httpForwarder;
|
|
- this.httpClientHanlder = httpClientHanlder;
|
|
|
|
|
|
+ this.httpClientFactory = httpClientFactory;
|
|
this.fastGithubConfig = fastGithubConfig;
|
|
this.fastGithubConfig = fastGithubConfig;
|
|
this.logger = logger;
|
|
this.logger = logger;
|
|
}
|
|
}
|
|
@@ -54,11 +54,9 @@ namespace FastGithub.ReverseProxy
|
|
else
|
|
else
|
|
{
|
|
{
|
|
var destinationPrefix = GetDestinationPrefix(host, domainConfig.Destination);
|
|
var destinationPrefix = GetDestinationPrefix(host, domainConfig.Destination);
|
|
|
|
+ var httpClient = this.httpClientFactory.CreateHttpClient(domainConfig);
|
|
var requestConfig = new ForwarderRequestConfig { Timeout = domainConfig.Timeout };
|
|
var requestConfig = new ForwarderRequestConfig { Timeout = domainConfig.Timeout };
|
|
|
|
|
|
- var tlsSniPattern = domainConfig.GetTlsSniPattern();
|
|
|
|
- using var httpClient = new HttpClient(this.httpClientHanlder, tlsSniPattern, domainConfig.TlsIgnoreNameMismatch);
|
|
|
|
-
|
|
|
|
var error = await httpForwarder.SendAsync(context, destinationPrefix, httpClient, requestConfig);
|
|
var error = await httpForwarder.SendAsync(context, destinationPrefix, httpClient, requestConfig);
|
|
await HandleErrorAsync(context, error);
|
|
await HandleErrorAsync(context, error);
|
|
}
|
|
}
|