43 lines
1.4 KiB
C#
43 lines
1.4 KiB
C#
using Serilog;
|
|
|
|
var builder = WebApplication.CreateBuilder(args);
|
|
|
|
Log.Logger = new LoggerConfiguration()
|
|
.ReadFrom.Configuration(builder.Configuration)
|
|
.Enrich.FromLogContext()
|
|
.WriteTo.Console()
|
|
.WriteTo.File("Logs/log-.txt", rollingInterval: RollingInterval.Day)
|
|
.CreateLogger();
|
|
|
|
builder.Host.UseSerilog();
|
|
builder.Services.AddRequestTimeouts();
|
|
//非IIS托管时启用
|
|
if (!string.Equals(Environment.GetEnvironmentVariable("ASPNETCORE_HOSTINGSTARTUPASSEMBLIES"), "Microsoft.AspNetCore.Server.IISIntegration", StringComparison.OrdinalIgnoreCase))
|
|
{
|
|
builder.WebHost.ConfigureKestrel(serverOptions =>
|
|
{
|
|
serverOptions.ListenAnyIP(443, listenOptions =>
|
|
{
|
|
var certPath = builder.Configuration["Kestrel:Certificates:Default:Path"];
|
|
var certPassword = builder.Configuration["Kestrel:Certificates:Default:Password"];
|
|
if (string.IsNullOrEmpty(certPath))
|
|
{
|
|
throw new InvalidOperationException("SSL证书路径未配置或为空");
|
|
}
|
|
listenOptions.UseHttps(certPath, certPassword);
|
|
});
|
|
serverOptions.ListenAnyIP(80);
|
|
});
|
|
}
|
|
|
|
builder.Services.AddReverseProxy()
|
|
.LoadFromConfig(builder.Configuration.GetSection("ReverseProxy"));
|
|
|
|
var app = builder.Build();
|
|
|
|
app.UseSerilogRequestLogging();
|
|
app.UseRouting();
|
|
app.UseRequestTimeouts();
|
|
app.MapReverseProxy();
|
|
|
|
app.Run(); |