pub struct RequestHttpFrontend {Show 16 fields
pub cluster_id: Option<String>,
pub address: SocketAddress,
pub hostname: String,
pub path: PathRule,
pub method: Option<String>,
pub position: i32,
pub tags: BTreeMap<String, String>,
pub redirect: Option<i32>,
pub required_auth: Option<bool>,
pub redirect_scheme: Option<i32>,
pub redirect_template: Option<String>,
pub rewrite_host: Option<String>,
pub rewrite_path: Option<String>,
pub rewrite_port: Option<u32>,
pub headers: Vec<Header>,
pub hsts: Option<HstsConfig>,
}Expand description
An HTTP or HTTPS frontend, as order to, or received from, Sōzu
Fields§
§cluster_id: Option<String>§address: SocketAddress§hostname: String§path: PathRule§method: Option<String>§position: i32custom tags to identify the frontend in the access logs
redirect: Option<i32>Redirect policy for this frontend. Default FORWARD (no redirect).
required_auth: Option<bool>When true, requests routed through this frontend must carry a valid
Authorization: Basic <user:pass> header whose hash matches one of
cluster.authorized_hashes. Default: false.
redirect_scheme: Option<i32>Scheme to use when emitting a 301 Location header. Default USE_SAME
(preserve the request scheme).
redirect_template: Option<String>Optional template applied when emitting a permanent redirect. Supports
%REDIRECT_LOCATION and the variables documented in doc/configure.md.
rewrite_host: Option<String>Rewrite host template. Supports $HOST\[n\] / $PATH\[n\] placeholders
populated from regex captures collected during routing. When set, both
the backend authority/path and the wire request line are rewritten.
rewrite_path: Option<String>Rewrite path template. Same grammar as rewrite_host.
rewrite_port: Option<u32>Optional literal port override on the rewritten URL.
headers: Vec<Header>Header mutations applied to requests and/or responses passing through
this frontend. See Header for delete semantics.
hsts: Option<HstsConfig>Per-frontend HSTS (RFC 6797) override. When Some, this entire
policy replaces the listener-default HttpsListenerConfig.hsts
for matched requests; when absent, the listener default applies.
Honours RFC 6797 §6.1 (single Strict-Transport-Security header on
the response) and §8.1 (HSTS host scope tied to the receiving
host). On HTTP-only frontends the value is rejected at config-load
(RFC 6797 §7.2). The §11.4 max-age=0 kill-switch is honoured
verbatim so an operator can shadow a listener-wide HSTS for one
hostname.
Implementations§
Source§impl RequestHttpFrontend
impl RequestHttpFrontend
Sourcepub fn cluster_id(&self) -> &str
pub fn cluster_id(&self) -> &str
Returns the value of cluster_id, or the default value if cluster_id is unset.
Sourcepub fn method(&self) -> &str
pub fn method(&self) -> &str
Returns the value of method, or the default value if method is unset.
Sourcepub fn position(&self) -> RulePosition
pub fn position(&self) -> RulePosition
Returns the enum value of position, or the default if the field is set to an invalid enum value.
Sourcepub fn set_position(&mut self, value: RulePosition)
pub fn set_position(&mut self, value: RulePosition)
Sets position to the provided enum value.
Sourcepub fn redirect(&self) -> RedirectPolicy
pub fn redirect(&self) -> RedirectPolicy
Returns the enum value of redirect, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_redirect(&mut self, value: RedirectPolicy)
pub fn set_redirect(&mut self, value: RedirectPolicy)
Sets redirect to the provided enum value.
Sourcepub fn required_auth(&self) -> bool
pub fn required_auth(&self) -> bool
Returns the value of required_auth, or the default value if required_auth is unset.
Sourcepub fn redirect_scheme(&self) -> RedirectScheme
pub fn redirect_scheme(&self) -> RedirectScheme
Returns the enum value of redirect_scheme, or the default if the field is unset or set to an invalid enum value.
Sourcepub fn set_redirect_scheme(&mut self, value: RedirectScheme)
pub fn set_redirect_scheme(&mut self, value: RedirectScheme)
Sets redirect_scheme to the provided enum value.
Sourcepub fn redirect_template(&self) -> &str
pub fn redirect_template(&self) -> &str
Returns the value of redirect_template, or the default value if redirect_template is unset.
Sourcepub fn rewrite_host(&self) -> &str
pub fn rewrite_host(&self) -> &str
Returns the value of rewrite_host, or the default value if rewrite_host is unset.
Sourcepub fn rewrite_path(&self) -> &str
pub fn rewrite_path(&self) -> &str
Returns the value of rewrite_path, or the default value if rewrite_path is unset.
Sourcepub fn rewrite_port(&self) -> u32
pub fn rewrite_port(&self) -> u32
Returns the value of rewrite_port, or the default value if rewrite_port is unset.
Source§impl RequestHttpFrontend
impl RequestHttpFrontend
Sourcepub fn to_frontend(self) -> Result<HttpFrontend, RequestError>
pub fn to_frontend(self) -> Result<HttpFrontend, RequestError>
convert a requested frontend to a usable one by parsing its address
Trait Implementations§
Source§impl Clone for RequestHttpFrontend
impl Clone for RequestHttpFrontend
Source§fn clone(&self) -> RequestHttpFrontend
fn clone(&self) -> RequestHttpFrontend
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for RequestHttpFrontend
impl Debug for RequestHttpFrontend
Source§impl Default for RequestHttpFrontend
impl Default for RequestHttpFrontend
Source§impl<'de> Deserialize<'de> for RequestHttpFrontend
impl<'de> Deserialize<'de> for RequestHttpFrontend
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl Display for RequestHttpFrontend
impl Display for RequestHttpFrontend
Source§impl From<HttpFrontend> for RequestHttpFrontend
impl From<HttpFrontend> for RequestHttpFrontend
Source§fn from(val: HttpFrontend) -> Self
fn from(val: HttpFrontend) -> Self
Source§impl Hash for RequestHttpFrontend
impl Hash for RequestHttpFrontend
Source§impl Message for RequestHttpFrontend
impl Message for RequestHttpFrontend
Source§fn encoded_len(&self) -> usize
fn encoded_len(&self) -> usize
Source§fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
fn encode(&self, buf: &mut impl BufMut) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
fn encode_length_delimited(
&self,
buf: &mut impl BufMut,
) -> Result<(), EncodeError>where
Self: Sized,
Source§fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
fn encode_length_delimited_to_vec(&self) -> Vec<u8> ⓘwhere
Self: Sized,
Source§fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
fn decode_length_delimited(buf: impl Buf) -> Result<Self, DecodeError>where
Self: Default,
Source§fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self. Read moreSource§fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
fn merge_length_delimited(&mut self, buf: impl Buf) -> Result<(), DecodeError>where
Self: Sized,
self.Source§impl Ord for RequestHttpFrontend
impl Ord for RequestHttpFrontend
Source§fn cmp(&self, other: &RequestHttpFrontend) -> Ordering
fn cmp(&self, other: &RequestHttpFrontend) -> Ordering
1.21.0 (const: unstable) · Source§fn max(self, other: Self) -> Selfwhere
Self: Sized,
fn max(self, other: Self) -> Selfwhere
Self: Sized,
Source§impl PartialEq for RequestHttpFrontend
impl PartialEq for RequestHttpFrontend
Source§fn eq(&self, other: &RequestHttpFrontend) -> bool
fn eq(&self, other: &RequestHttpFrontend) -> bool
self and other values to be equal, and is used by ==.Source§impl PartialOrd for RequestHttpFrontend
impl PartialOrd for RequestHttpFrontend
Source§impl Serialize for RequestHttpFrontend
impl Serialize for RequestHttpFrontend
impl Eq for RequestHttpFrontend
impl StructuralPartialEq for RequestHttpFrontend
Auto Trait Implementations§
impl Freeze for RequestHttpFrontend
impl RefUnwindSafe for RequestHttpFrontend
impl Send for RequestHttpFrontend
impl Sync for RequestHttpFrontend
impl Unpin for RequestHttpFrontend
impl UnsafeUnpin for RequestHttpFrontend
impl UnwindSafe for RequestHttpFrontend
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Comparable<K> for Q
impl<Q, K> Comparable<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.