Dokku-在容器中获取nginx反向代理的ip地址?
在我的ASP.NET核心服务器中,我有转发功能来支持我的OpenId Connect身份验证工作流:Dokku-在容器中获取nginx反向代理的ip地址?,nginx,asp.net-core,reverse-proxy,dokku,Nginx,Asp.net Core,Reverse Proxy,Dokku,在我的ASP.NET核心服务器中,我有转发功能来支持我的OpenId Connect身份验证工作流: public void ConfigureServices(IServiceCollection services) { services.Configure<ForwardedHeadersOptions>(options => { options.ForwardedHeaders = ForwardedHeaders.XForwardedProto |
public void ConfigureServices(IServiceCollection services)
{
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders = ForwardedHeaders.XForwardedProto | ForwardedHeaders.XForwardedFor;
// Only loopback proxies are allowed by default.
// Clear that restriction because forwarders are enabled by explicit
// configuration.
options.KnownNetworks.Clear();
options.KnownProxies.Clear();
}
}
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
app.UseForwardedHeaders();
}
但是,我想配置KnownProxies和KnownNetworks。有没有办法在容器的上下文中找到代理服务器的ip地址?配置是静态的吗?若否,可否自动化
还有,这个地址和主机地址是一样的吗。例如,将ip地址解析为host.docker.internal有帮助吗?在Linux环境中,这似乎不是一件容易的事情
另外,上面的代码来自。重新阅读该部分,可以不使用上述代码吗?我假设锁定到某个特定的代理服务器会更好?容器IP是短暂的,可能会随着应用程序的重建或重新部署而改变。默认情况下,Dokku将在内部docker0网络上运行您的应用程序,唯一可以访问容器的是服务器本身上运行的服务,因此允许从所有网络接口访问是安全的。我认为您应该使用环境变量来设置URI。这可能导致您的应用程序独立于平台。您可以通过dockerfile或在CI/CD管道中设置环境变量。是的,我认为这是一个很好的方法。但是,为了做到这一点,我需要确认Dukko中容器中代理服务器的IP地址不是Ephemeralcol。谢谢在这种情况下,我对代码示例很满意!