ASP。网络核心反向代理如何部署

  

<强> Nginx配置路由转发

首先来看下IdentityServer4。管理的项目结构:

IdentityServer4。管理/├──Id4.Admin。Api #用于提供访问Id4资源的WebApi项目   ├──Id4。管理#用于提供管理Id4资源的网络管理面板   ├──Id4.STS。身份#用于提供STS服务的网络项目

作为三个独立的项目,分开部署很简单,但为了统一入口管理,我倾向于将<代码> Id4.Admin 和<代码> Id4.STS。身份> Id4.Admin.API> 访问<代码> Id4.STS.Identity> 访问<代码> Id4.Admin>

这也就是遇到的第一个问题如何借助Nginx实现单域名多站点部署!

红隼作为一个边缘web服务器部署时,其将独占一个IP和端口。在没有反向代理服务器的情况下,用作边缘服务器的茶隼不支持在多个进程之间共享相同的IP和端口。当将茶隼配置为在端口上侦听时,红隼将处理该端口的所有网络通信,并且忽略请求头中指定的<代码>主机>

 ASP。网络核心反向代理如何部署”> </p> <p>因此为了进行端口共享,我们需借助反向代理将唯一的IP和端口上将请求转发给红隼。也就是下面这张图。<br/> </p> <p> <img src= appsettings.json   {   “PATHBASE":“/admin"   }   -----      公共类创业公司   {   公共公司(IConfiguration配置)   {   配置=配置;   }   私人IConfiguration配置{得到;}//?   公共空间配置(…)   {//?   app.UsePathBase (Configuration.GetValue (“PATHBASE"));

使用反向代理还有一个问题要注意,那就是反向代理会模糊一些请求信息:

    <李>通过HTTP代理HTTPS请求时,原始传输协议(HTTPS)丢失,必须在请求头中转发。 <李>由于应用程序是从代理服务器收到请求的,而不是真正的请求来源,因此原始客户端IP地址也必须在请求头中转发。

这也就是为什么上面的Nginx配置,会默认包含以下两项配置的原因。

 proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元;
  proxy_set_header X-Forwarded-Proto美元计划;

Nginx已经默认配置转发了以上信息,那么自然要显式告知ASP。网络核心Web应用要从请求头中取回真实的请求信息。配置很简单,需要Microsoft.AspNetCore安”。HttpOverrides NuGet包,然后在启动的配置中启用中间件。

ASP。网络核心反向代理如何部署