Dokku-获取容器内Nginx反向代理的IP地址?

时间:2019-08-13 01:30:48

标签: nginx asp.net-core reverse-proxy dokku

在我的ASP.NET Core服务器中,我已经进行转发以支持我的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地址(在容器的上下文中)?配置是静态的吗?如果没有,可以自动化吗?

此外,该地址是否与主机地址相同?即将IP地址解析为host.docker.internal会有所帮助吗?无论如何,在Linux环境中这似乎并不容易...

此外,以上代码来自this documentation。重新阅读该部分,可以保留上面的代码吗?我假设锁定到特定的代理服务器会更好?

1 个答案:

答案 0 :(得分:1)

容器IP是临时的,并且可能会在应用重建或重新部署时发生变化。默认情况下,Dokku将在内部docker0网络上运行您的应用程序,并且唯一可以访问容器的是在服务器本身上运行的服务,因此允许从所有网络接口进行访问都是安全的。

相关问题