Struct FastCgiTcpConnector
pub struct FastCgiTcpConnector { /* private fields */ }fastcgi only.Expand description
Open a TCP connection to a FastCGI backend (typically php-fpm at
127.0.0.1:9000).
Stages any with_param / with_script_filename
/ with_document_root values onto the
FastCgiClientRequest::params vec just before forwarding to the inner
HTTP-→-FastCGI conversion. The connector itself owns no per-request
state, so it is cheap to clone.
See the module-level docs for usage examples and the Self::php_fpm
preset.
Implementations§
§impl FastCgiTcpConnector
impl FastCgiTcpConnector
pub fn new(target: HostWithPort, exec: Executor) -> FastCgiTcpConnector
Available on crate feature transport only.
pub fn new(target: HostWithPort, exec: Executor) -> FastCgiTcpConnector
transport only.Create a bare TCP connector — no CGI params injected.
Use Self::php_fpm if you want SCRIPT_FILENAME and
DOCUMENT_ROOT set automatically (the 90% case).
pub fn php_fpm(
target: HostWithPort,
exec: Executor,
script: impl AsRef<Path>,
) -> FastCgiTcpConnector
Available on crate feature transport only.
pub fn php_fpm( target: HostWithPort, exec: Executor, script: impl AsRef<Path>, ) -> FastCgiTcpConnector
transport only.Convenience constructor for the php-fpm common case: opens a TCP
connection to target and injects SCRIPT_FILENAME = script plus
DOCUMENT_ROOT = <parent dir of script>. Both params are required
for php-fpm to route the request to the right script.
pub fn with_param(
self,
name: impl Into<Bytes>,
value: impl Into<Bytes>,
) -> FastCgiTcpConnector
Available on crate feature transport only.
pub fn with_param( self, name: impl Into<Bytes>, value: impl Into<Bytes>, ) -> FastCgiTcpConnector
transport only.Push an arbitrary CGI param onto every request handled by this connector.
Use the cgi constants for spec-defined names:
use rama_fastcgi::client::transport::FastCgiTcpConnector;
use rama_fastcgi::proto::cgi;
let c = FastCgiTcpConnector::new(addr, exec)
.with_param(cgi::SCRIPT_FILENAME, "/srv/app.php")
.with_param(cgi::REDIRECT_STATUS, "200");pub fn with_script_filename(self, path: impl AsRef<Path>) -> FastCgiTcpConnector
Available on crate feature transport only.
pub fn with_script_filename(self, path: impl AsRef<Path>) -> FastCgiTcpConnector
transport only.Stage SCRIPT_FILENAME for every request. See cgi::SCRIPT_FILENAME.
pub fn with_document_root(self, path: impl AsRef<Path>) -> FastCgiTcpConnector
Available on crate feature transport only.
pub fn with_document_root(self, path: impl AsRef<Path>) -> FastCgiTcpConnector
transport only.Stage DOCUMENT_ROOT for every request. See cgi::DOCUMENT_ROOT.
Trait Implementations§
§impl Clone for FastCgiTcpConnector
impl Clone for FastCgiTcpConnector
§fn clone(&self) -> FastCgiTcpConnector
fn clone(&self) -> FastCgiTcpConnector
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more§impl Debug for FastCgiTcpConnector
impl Debug for FastCgiTcpConnector
§impl Service<FastCgiClientRequest> for FastCgiTcpConnector
impl Service<FastCgiClientRequest> for FastCgiTcpConnector
§type Output = EstablishedClientConnection<TcpStream, FastCgiClientRequest>
type Output = EstablishedClientConnection<TcpStream, FastCgiClientRequest>
§async fn serve(
&self,
input: FastCgiClientRequest,
) -> Result<<FastCgiTcpConnector as Service<FastCgiClientRequest>>::Output, <FastCgiTcpConnector as Service<FastCgiClientRequest>>::Error>
async fn serve( &self, input: FastCgiClientRequest, ) -> Result<<FastCgiTcpConnector as Service<FastCgiClientRequest>>::Output, <FastCgiTcpConnector as Service<FastCgiClientRequest>>::Error>
§fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
fn boxed(self) -> BoxService<Input, Self::Output, Self::Error>
Auto Trait Implementations§
impl Freeze for FastCgiTcpConnector
impl RefUnwindSafe for FastCgiTcpConnector
impl Send for FastCgiTcpConnector
impl Sync for FastCgiTcpConnector
impl Unpin for FastCgiTcpConnector
impl UnsafeUnpin for FastCgiTcpConnector
impl UnwindSafe for FastCgiTcpConnector
Blanket Implementations§
§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
§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,
§impl<S, Input, Connection> ConnectorService<Input> for S
impl<S, Input, Connection> ConnectorService<Input> for S
§type Connection = Connection
type Connection = Connection
ConnectorService§fn connect(
&self,
input: Input,
) -> impl Future<Output = Result<EstablishedClientConnection<<S as ConnectorService<Input>>::Connection, Input>, <S as ConnectorService<Input>>::Error>> + Send
fn connect( &self, input: Input, ) -> impl Future<Output = Result<EstablishedClientConnection<<S as ConnectorService<Input>>::Connection, Input>, <S as ConnectorService<Input>>::Error>> + Send
§impl<T> FutureExt for T
impl<T> FutureExt for T
§fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
fn with_context(self, otel_cx: Context) -> WithContext<Self> ⓘ
§fn with_current_context(self) -> WithContext<Self> ⓘ
fn with_current_context(self) -> WithContext<Self> ⓘ
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a rama_grpc::Request§impl<T> Pointable for T
impl<T> Pointable for T
§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
§fn and<P, B, E>(self, other: P) -> And<T, P>
fn and<P, B, E>(self, other: P) -> And<T, P>
Policy that returns Action::Follow only if self and other return
Action::Follow. Read more§impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
impl<T, U> RamaTryFrom<T> for Uwhere
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn rama_try_from(value: T) -> Result<U, <U as RamaTryFrom<T>>::Error>
§impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
impl<T, U, CrateMarker> RamaTryInto<U, CrateMarker> for Twhere
U: RamaTryFrom<T, CrateMarker>,
type Error = <U as RamaTryFrom<T, CrateMarker>>::Error
fn rama_try_into(self) -> Result<U, <U as RamaTryFrom<T, CrateMarker>>::Error>
§impl<V, F> ValueFormatter<&V> for F
impl<V, F> ValueFormatter<&V> for F
§fn format_value(writer: impl ValueWriter, value: &&V)
fn format_value(writer: impl ValueWriter, value: &&V)
value to writer§impl<V, F> ValueFormatter<Arc<V>> for F
impl<V, F> ValueFormatter<Arc<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Arc<V>)
fn format_value(writer: impl ValueWriter, value: &Arc<V>)
value to writer§impl<V, F> ValueFormatter<Box<V>> for F
impl<V, F> ValueFormatter<Box<V>> for F
§fn format_value(writer: impl ValueWriter, value: &Box<V>)
fn format_value(writer: impl ValueWriter, value: &Box<V>)
value to writer§impl<V, F> ValueFormatter<Cow<'_, V>> for F
impl<V, F> ValueFormatter<Cow<'_, V>> for F
§fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
fn format_value(writer: impl ValueWriter, value: &Cow<'_, V>)
value to writer§impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
impl<V, F> ValueFormatter<Option<V>> for Fwhere
F: ValueFormatter<V> + ?Sized,
§fn format_value(writer: impl ValueWriter, value: &Option<V>)
fn format_value(writer: impl ValueWriter, value: &Option<V>)
value to writer