Dokku - 获取容器内 nginx 反向代理的 ip 地址?
Dokku - get ip address of nginx reverse proxy inside container?
在我的 ASP.NET 核心服务器中,我有转发来支持我的 OpenId Connect 身份验证工作流程:
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 地址(在容器的上下文中)?配置是静态的吗?如果没有,可以自动化吗?
此外,这个地址是否与主机地址相同。 IE。将 ip 地址解析为 host.docker.internal
有帮助吗?无论如何,在 Linux 环境中这似乎不是一件容易的事...
另外,以上代码来自this documentation。重新阅读该部分,是否可以保留上面的代码?我假设锁定到特定代理服务器会更好?
容器 IP 是临时的,可能会在应用重建或重新部署时发生变化。默认情况下,Dokku 会 运行 你的应用程序在内部 docker0
网络上,唯一可以访问容器的是服务器本身上的服务 运行,因此允许从所有网络访问接口是安全的。
在我的 ASP.NET 核心服务器中,我有转发来支持我的 OpenId Connect 身份验证工作流程:
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 地址(在容器的上下文中)?配置是静态的吗?如果没有,可以自动化吗?
此外,这个地址是否与主机地址相同。 IE。将 ip 地址解析为 host.docker.internal
有帮助吗?无论如何,在 Linux 环境中这似乎不是一件容易的事...
另外,以上代码来自this documentation。重新阅读该部分,是否可以保留上面的代码?我假设锁定到特定代理服务器会更好?
容器 IP 是临时的,可能会在应用重建或重新部署时发生变化。默认情况下,Dokku 会 运行 你的应用程序在内部 docker0
网络上,唯一可以访问容器的是服务器本身上的服务 运行,因此允许从所有网络访问接口是安全的。