哪家公司做企业网站稳定优惠,微网站界面设计,wordpress加速r,求一外国h网站引言最近在公司开发了一个项目#xff0c;项目部署架构图如下#xff1a;思路如图中文本所述#xff0c;公司大数据集群不允许直接访问外网#xff0c;需要一个网关服务器代理请求#xff0c;本处服务器A就是边缘代理服务器的作用。通常技术人员最快捷的思路是在服务器A上… 引言 最近在公司开发了一个项目项目部署架构图如下思路 如图中文本所述公司大数据集群不允许直接访问外网需要一个网关服务器代理请求本处服务器A就是边缘代理服务器的作用。通常技术人员最快捷的思路是在服务器A上部署IISApplication Request Routing Module组件或者配置由Nginx代理请求完成此次边缘代理服务器的功能。但是由于本处代理服务器A 还需要完成额外的功能服务器A需要定时访问外网云服务器将数据请求并保存到本地代理服务器A集中管理云服务器B的基本身份认证凭据 所以该代理服务器A在代理请求的时候需要发送认证凭据关于web服务器定时任务功能实践请参照技术博客关于基本身份认证的编程实践请参照技术博客。所以本处我们考虑利用ASP.NET Core实现一个带认证功能的代理服务器。 任务集中在2点实现代理请求代理请求的时候携带 基本身份认证凭据编程实现ASP.NET Core 提供了实现请求代理功能的功能库 通过nuget安装Install-Package Microsoft.AspNetCore.Proxy -Version 0.2.0该中间件目前只有2个扩展方法主要关注如下扩展方法//// 摘要:// Sends request to remote server as specified in options//// 参数:// app://// options:// Options for setting port, host, and schemepublic static IApplicationBuilder RunProxy(this IApplicationBuilder app, ProxyOptions options);本次代理请求需要携带BA凭据所以可在ProxyOptions参数设定基本身份认证Handler public void ConfigureServices(IServiceCollection services){ _remoteAccount services.ConfigureOptionRemoteBasicAuth(Configuration.GetSection(RemoteBasicAuth)); _proxyOption services.ConfigureOptionProxyOptions(Configuration.GetSection(ProxyOptions)); // 从本地配置文件读取云服务器B的认证凭据并设置基本身份认证Handler _proxyOption.BackChannelMessageHandler new BasicAuthenticationClientHandler(_remoteAccount); ......}该云服务器B在部分页面【url以/eqids开头、api以/api/v1/eqids/】配置了BA认证所以本次我们使用了MapWhen条件中间件 public void Configure(IApplicationBuilder app, Microsoft.AspNetCore.Hosting.IHostingEnvironment env, Microsoft.Extensions.Hosting.IApplicationLifetime appLifetime, ILoggerFactory loggerFactory) { ...... app.MapWhen(x x.Request.Path.Value.StartsWith(/eqids, StringComparison.OrdinalIgnoreCase) || x.Request.Path.Value.StartsWith(/api/v1/eqids, StringComparison.OrdinalIgnoreCase), builder builder.RunProxy(_proxyOption)); ...... } Thats All. 以上程序部署到服务器A之后 这样访问服务器A的部署网站 等同于访问云服务器B的资源服务器B对于内网来说是透明的。 本文期待以一种轻松、优雅的方式快速实现一个具备自定义消息处理能力的Web代理服务器。原文地址https://www.cnblogs.com/mi12205599/p/10503600.html.NET社区新闻深度好文欢迎访问公众号文章汇总 http://www.csharpkit.com