ServiceCollectionExtensions.cs 1.3 KB

1234567891011121314151617181920212223242526272829303132
  1. using FastGithub.HttpServer;
  2. using Microsoft.Extensions.DependencyInjection;
  3. namespace FastGithub
  4. {
  5. /// <summary>
  6. /// http反向代理的服务注册扩展
  7. /// </summary>
  8. public static class ServiceCollectionExtensions
  9. {
  10. /// <summary>
  11. /// 添加http反向代理
  12. /// </summary>
  13. /// <param name="services"></param>
  14. /// <returns></returns>
  15. public static IServiceCollection AddReverseProxy(this IServiceCollection services)
  16. {
  17. return services
  18. .AddMemoryCache()
  19. .AddHttpForwarder()
  20. .AddSingleton<CertService>()
  21. .AddSingleton<ICaCertInstaller, CaCertInstallerOfMacOS>()
  22. .AddSingleton<ICaCertInstaller, CaCertInstallerOfWindows>()
  23. .AddSingleton<ICaCertInstaller, CaCertInstallerOfLinuxRedHat>()
  24. .AddSingleton<ICaCertInstaller, CaCertInstallerOfLinuxCentOS>()
  25. .AddSingleton<ICaCertInstaller, CaCertInstallerOfLinuxDebian>()
  26. .AddSingleton<ICaCertInstaller, CaCertInstallerOfLinuxUbuntu>()
  27. .AddSingleton<HttpProxyMiddleware>()
  28. .AddSingleton<RequestLoggingMiddleware>()
  29. .AddSingleton<HttpReverseProxyMiddleware>();
  30. }
  31. }
  32. }