v0.27.0
This commit is contained in:
1 parent
a9f9450f80
commit
762eb9e28b
81 files changed
+1242
-1095
No files matched your search
+7
-1
@@ -17,6 +17,10 @@ pub const MAX_CONFIG_BYTES: usize = 262_144;
|
||||
pub const MAX_BACKENDS: usize = 128;
|
||||
pub const MAX_ROUTES: usize = 256;
|
||||
|
||||
fn legacy_server_header_default() -> crate::settings::ServerHeader {
|
||||
crate::settings::ServerHeader::legacy_compat_default()
|
||||
}
|
||||
|
||||
#[derive(Debug, Clone, Default, Serialize, Deserialize)]
|
||||
#[serde(deny_unknown_fields)]
|
||||
pub struct Config {
|
||||
@@ -50,7 +54,7 @@ pub struct Config {
|
||||
pub pages: crate::pages::GlobalPages,
|
||||
#[serde(default)]
|
||||
pub compression: crate::compression::Settings,
|
||||
#[serde(default)]
|
||||
#[serde(default = "legacy_server_header_default")]
|
||||
pub server_header: crate::settings::ServerHeader,
|
||||
#[serde(default)]
|
||||
pub diagnostic_headers: crate::settings::DiagnosticHeaders,
|
||||
@@ -198,6 +202,7 @@ pub struct CompiledRoute {
|
||||
pub country_access: crate::rate_limit::CountryAccess,
|
||||
pub method_policy: crate::vhost::MethodPolicy,
|
||||
pub headers: CompiledHeaders,
|
||||
pub unavailable: bool,
|
||||
}
|
||||
#[derive(Debug)]
|
||||
pub struct CompiledFrontend {
|
||||
@@ -233,6 +238,7 @@ pub struct CompiledFrontend {
|
||||
pub acl: Option<CompiledAcl>,
|
||||
pub headers: CompiledHeaders,
|
||||
pub security: crate::security::CompiledSecurity,
|
||||
pub compression: crate::compression::Overrides,
|
||||
pub cache: crate::cache::Settings,
|
||||
pub transform: crate::transform::Settings,
|
||||
pub pages: crate::pages::VhostPages,
|
||||
|
||||
+13
-10
@@ -190,6 +190,7 @@ fn compile_routing(
|
||||
acl: host.acl.as_ref().map(Acl::compile).transpose()?,
|
||||
headers: host.headers.compile()?,
|
||||
security: host.security_headers.compile()?,
|
||||
compression: host.compression.clone(),
|
||||
cache: host.cache.resolve(&config.cache)?,
|
||||
transform: host.transform.resolve(&config.transform)?,
|
||||
pages: host.pages.clone(),
|
||||
@@ -198,17 +199,17 @@ fn compile_routing(
|
||||
if host.enabled {
|
||||
let (fallback_source, fallback_pool, fallback_backend) = match &host.source {
|
||||
crate::vhost::Source::ReverseProxy => {
|
||||
let pool = pool.as_ref().ok_or_else(|| {
|
||||
anyhow::anyhow!(
|
||||
"vhost {} Reverse Proxy source has no backend pool",
|
||||
host.id
|
||||
if let Some(pool) = pool.as_ref() {
|
||||
(
|
||||
CompiledSource::ReverseProxy,
|
||||
Some(pool.clone()),
|
||||
Some(pool.members[0].backend.clone()),
|
||||
)
|
||||
})?;
|
||||
(
|
||||
CompiledSource::ReverseProxy,
|
||||
Some(pool.clone()),
|
||||
Some(pool.members[0].backend.clone()),
|
||||
)
|
||||
} else if host.transient_unavailable {
|
||||
(CompiledSource::ReverseProxy, None, None)
|
||||
} else {
|
||||
anyhow::bail!("vhost {} Reverse Proxy source has no backend pool", host.id);
|
||||
}
|
||||
}
|
||||
crate::vhost::Source::WebServer { web_service_id } => (
|
||||
CompiledSource::WebServer(web_services[web_service_id].clone()),
|
||||
@@ -237,6 +238,7 @@ fn compile_routing(
|
||||
country_access: crate::rate_limit::CountryAccess::default(),
|
||||
method_policy: crate::vhost::MethodPolicy::default(),
|
||||
headers: crate::headers::CompiledHeaders::default(),
|
||||
unavailable: host.transient_unavailable,
|
||||
};
|
||||
for name in &host.frontend.hosts {
|
||||
fallbacks
|
||||
@@ -371,6 +373,7 @@ fn compile_routing(
|
||||
country_access: route.country_access.clone(),
|
||||
method_policy: route.method_policy.clone(),
|
||||
headers,
|
||||
unavailable: false,
|
||||
};
|
||||
for name in &host.frontend.hosts {
|
||||
routes
|
||||
|
||||
Reference in new issue
Block a user