<强> Nginx配置路由转发强>
首先来看下IdentityServer4。管理的项目结构:
IdentityServer4。管理/├──Id4.Admin。Api #用于提供访问Id4资源的WebApi项目 ├──Id4。管理#用于提供管理Id4资源的网络管理面板 ├──Id4.STS。身份#用于提供STS服务的网络项目
作为三个独立的项目,分开部署很简单,但为了统一入口管理,我倾向于将<代码> Id4.Admin 代码>和<代码> Id4.STS。身份> 代码部署在一个域名之下,<代码> Id4.Admin.API> 代码项目部署到网关中去。也就是通过http://auth.xxx.com <代码> 代码>访问<代码> Id4.STS.Identity> 代码,通过http://auth.xxx.com/admin <代码> 代码>访问<代码> Id4.Admin> 代码。
这也就是遇到的第一个问题如何借助Nginx实现单域名多站点部署!
红隼作为一个边缘web服务器部署时,其将独占一个IP和端口。在没有反向代理服务器的情况下,用作边缘服务器的茶隼不支持在多个进程之间共享相同的IP和端口。当将茶隼配置为在端口上侦听时,红隼将处理该端口的所有网络通信,并且忽略请求头中指定的<代码>主机> 代码请求头,也就意味着红隼不会负责请求转发。
appsettings.json
{
“PATHBASE":“/admin"
}
-----
公共类创业公司
{
公共公司(IConfiguration配置)
{
配置=配置;
}
私人IConfiguration配置{得到;}//?
公共空间配置(…)
{//?
app.UsePathBase (Configuration.GetValue 使用反向代理还有一个问题要注意,那就是反向代理会模糊一些请求信息: 这也就是为什么上面的Nginx配置,会默认包含以下两项配置的原因。 Nginx已经默认配置转发了以上信息,那么自然要显式告知ASP。网络核心Web应用要从请求头中取回真实的请求信息。配置很简单,需要Microsoft.AspNetCore安”。HttpOverrides NuGet包,然后在启动的配置中启用中间件。 <李>通过HTTP代理HTTPS请求时,原始传输协议(HTTPS)丢失,必须在请求头中转发。李> <李>由于应用程序是从代理服务器收到请求的,而不是真正的请求来源,因此原始客户端IP地址也必须在请求头中转发。李>
proxy_set_header X-Forwarded-For proxy_add_x_forwarded_for美元;
proxy_set_header X-Forwarded-Proto美元计划;
ASP。网络核心反向代理如何部署