【发布时间】:2019-02-21 05:48:41
【问题描述】:
我需要澄清 ASP.NET Core 应用在 Linux 上的设置过程。我有 Apache 作为服务器,我想将它用作反向代理。在我的 ASP.NET Core 应用程序上,我有这样的设置:
services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
services.Configure<ForwardedHeadersOptions>(options =>
{
options.ForwardedHeaders =
ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto;
});
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.XForwardedFor | ForwardedHeaders.XForwardedProto
});
转发标头 - 这些位于“如何在 Linux 上运行 ASP.NET Core”的文档中。
在 Program.cs 我有:
var host = WebHost.CreateDefaultBuilder(args)
.UseKestrel()
.UseUrls("https://*:5001")
.UseIISIntegration()
.UseStartup<Startup>()
.Build();
我的问题:
- 我是否需要这些 Forwarded 标头?
- 我需要将
app.UseHttpsRedirection();添加到我的项目中吗? - 我需要在此行中指定
UseUrls("https://*:5001")https 还是可以是http? - 我是否需要在我的 Kestrel(我的应用程序)上使用 https,或者如果我有反向代理,我可以使用 http,而 Apache 会处理 ssl?
- 是否需要在我的 ASP.NET Core 应用程序中添加任何其他代码才能使其与反向代理一起使用?
【问题讨论】:
标签: c# apache asp.net-core kestrel-http-server