Struct actix_web::server::HttpServer [−][src]
pub struct HttpServer<H> where
H: IntoHttpHandler + 'static, { /* fields omitted */ }
An HTTP Server
Methods
impl<H> HttpServer<H> where
H: IntoHttpHandler + 'static,
[src]
impl<H> HttpServer<H> where
H: IntoHttpHandler + 'static,
pub fn new<F, U>(factory: F) -> Self where
F: Fn() -> U + Sync + Send + 'static,
U: IntoIterator<Item = H> + 'static,
[src]
pub fn new<F, U>(factory: F) -> Self where
F: Fn() -> U + Sync + Send + 'static,
U: IntoIterator<Item = H> + 'static,
Create new http server with application factory
pub fn workers(self, num: usize) -> Self
[src]
pub fn workers(self, num: usize) -> Self
Set number of workers to start.
By default http server uses number of available logical cpu as threads count.
pub fn backlog(self, num: i32) -> Self
[src]
pub fn backlog(self, num: i32) -> Self
Set the maximum number of pending connections.
This refers to the number of clients that can be waiting to be served. Exceeding this number results in the client getting an error when attempting to connect. It should only affect servers under significant load.
Generally set in the 64-2048 range. Default value is 2048.
This method should be called before bind()
method call.
pub fn keep_alive<T: Into<KeepAlive>>(self, val: T) -> Self
[src]
pub fn keep_alive<T: Into<KeepAlive>>(self, val: T) -> Self
Set server keep-alive setting.
By default keep alive is set to a Os
.
pub fn server_hostname(self, val: String) -> Self
[src]
pub fn server_hostname(self, val: String) -> Self
Set server host name.
Host name is used by application router aa a hostname for url generation. Check [ConnectionInfo](./dev/struct.ConnectionInfo. html#method.host) documentation for more information.
pub fn system_exit(self) -> Self
[src]
pub fn system_exit(self) -> Self
Stop actix system.
SystemExit
message stops currently running system.
pub fn signals(self, addr: Addr<ProcessSignals>) -> Self
[src]
pub fn signals(self, addr: Addr<ProcessSignals>) -> Self
Set alternative address for ProcessSignals
actor.
pub fn disable_signals(self) -> Self
[src]
pub fn disable_signals(self) -> Self
Disable signal handling
pub fn shutdown_timeout(self, sec: u16) -> Self
[src]
pub fn shutdown_timeout(self, sec: u16) -> Self
Timeout for graceful workers shutdown.
After receiving a stop signal, workers have this much time to finish serving requests. Workers still alive after the timeout are force dropped.
By default shutdown timeout sets to 30 seconds.
pub fn no_http2(self) -> Self
[src]
pub fn no_http2(self) -> Self
Disable HTTP/2
support
pub fn addrs(&self) -> Vec<SocketAddr>
[src]
pub fn addrs(&self) -> Vec<SocketAddr>
Get addresses of bound sockets.
pub fn addrs_with_scheme(&self) -> Vec<(SocketAddr, &str)>
[src]
pub fn addrs_with_scheme(&self) -> Vec<(SocketAddr, &str)>
Get addresses of bound sockets and the scheme for it.
This is useful when the server is bound from different sources with some sockets listening on http and some listening on https and the user should be presented with an enumeration of which socket requires which protocol.
pub fn listen(self, lst: TcpListener) -> Self
[src]
pub fn listen(self, lst: TcpListener) -> Self
Use listener for accepting incoming connection requests
HttpServer does not change any configuration for TcpListener, it needs to be configured before passing it to listen() method.
pub fn listen_tls(self, lst: TcpListener, acceptor: TlsAcceptor) -> Self
[src]
pub fn listen_tls(self, lst: TcpListener, acceptor: TlsAcceptor) -> Self
Use listener for accepting incoming tls connection requests
HttpServer does not change any configuration for TcpListener, it needs to be configured before passing it to listen() method.
pub fn listen_ssl(
self,
lst: TcpListener,
builder: SslAcceptorBuilder
) -> Result<Self>
[src]
pub fn listen_ssl(
self,
lst: TcpListener,
builder: SslAcceptorBuilder
) -> Result<Self>
Use listener for accepting incoming tls connection requests
This method sets alpn protocols to "h2" and "http/1.1"
pub fn bind<S: ToSocketAddrs>(self, addr: S) -> Result<Self>
[src]
pub fn bind<S: ToSocketAddrs>(self, addr: S) -> Result<Self>
The socket address to bind
To bind multiple addresses this method can be called multiple times.
pub fn bind_tls<S: ToSocketAddrs>(
self,
addr: S,
acceptor: TlsAcceptor
) -> Result<Self>
[src]
pub fn bind_tls<S: ToSocketAddrs>(
self,
addr: S,
acceptor: TlsAcceptor
) -> Result<Self>
The ssl socket address to bind
To bind multiple addresses this method can be called multiple times.
pub fn bind_ssl<S: ToSocketAddrs>(
self,
addr: S,
builder: SslAcceptorBuilder
) -> Result<Self>
[src]
pub fn bind_ssl<S: ToSocketAddrs>(
self,
addr: S,
builder: SslAcceptorBuilder
) -> Result<Self>
Start listening for incoming tls connections.
This method sets alpn protocols to "h2" and "http/1.1"
impl<H: IntoHttpHandler> HttpServer<H>
[src]
impl<H: IntoHttpHandler> HttpServer<H>
pub fn start(self) -> Addr<Self>
[src]
pub fn start(self) -> Addr<Self>
Start listening for incoming connections.
This method starts number of http handler workers in separate threads.
For each address this method starts separate thread which does
accept()
in a loop.
This methods panics if no socket addresses get bound.
This method requires to run within properly configured Actix
system.
extern crate actix_web; use actix_web::{actix, server, App, HttpResponse}; fn main() { let sys = actix::System::new("example"); // <- create Actix system server::new(|| App::new().resource("/", |r| r.h(|_: &_| HttpResponse::Ok()))) .bind("127.0.0.1:0") .expect("Can not bind to 127.0.0.1:0") .start(); sys.run(); // <- Run actix system, this method starts all async processes }
pub fn run(self)
[src]
pub fn run(self)
Spawn new thread and start listening for incoming connections.
This method spawns new thread and starts new actix system. Other than
that it is similar to start()
method. This method blocks.
This methods panics if no socket addresses get bound.
use actix_web::*; fn main() { HttpServer::new(|| App::new().resource("/", |r| r.h(|_| HttpResponse::Ok()))) .bind("127.0.0.1:0") .expect("Can not bind to 127.0.0.1:0") .run(); }
impl<H: IntoHttpHandler> HttpServer<H>
[src]
impl<H: IntoHttpHandler> HttpServer<H>
pub fn start_incoming<T, S>(self, stream: S, secure: bool) -> Addr<Self> where
S: Stream<Item = T, Error = Error> + Send + 'static,
T: AsyncRead + AsyncWrite + Send + 'static,
[src]
pub fn start_incoming<T, S>(self, stream: S, secure: bool) -> Addr<Self> where
S: Stream<Item = T, Error = Error> + Send + 'static,
T: AsyncRead + AsyncWrite + Send + 'static,
Start listening for incoming connections from a stream.
This method uses only one thread for handling incoming connections.
Trait Implementations
impl<H> Actor for HttpServer<H> where
H: IntoHttpHandler,
[src]
impl<H> Actor for HttpServer<H> where
H: IntoHttpHandler,
type Context = Context<Self>
Actor execution context type
fn started(&mut self, ctx: &mut Self::Context)
fn started(&mut self, ctx: &mut Self::Context)
Method is called when actor get polled first time.
fn stopping(&mut self, ctx: &mut Self::Context) -> Running
fn stopping(&mut self, ctx: &mut Self::Context) -> Running
Method is called after an actor is in Actor::Stopping
state. There could be several reasons for stopping. Context::stop
get called by the actor itself. All addresses to current actor get dropped and no more evented objects left in the context. Read more
fn stopped(&mut self, ctx: &mut Self::Context)
fn stopped(&mut self, ctx: &mut Self::Context)
Method is called after an actor is stopped, it can be used to perform any needed cleanup work or spawning more actors. This is final state, after this call actor get dropped. Read more
fn start(self) -> Addr<Self> where
Self: Actor<Context = Context<Self>>,
fn start(self) -> Addr<Self> where
Self: Actor<Context = Context<Self>>,
Start new asynchronous actor, returns address of newly created actor. Read more
fn start_default() -> Addr<Self> where
Self: Actor<Context = Context<Self>> + Default,
fn start_default() -> Addr<Self> where
Self: Actor<Context = Context<Self>> + Default,
Start new asynchronous actor, returns address of newly created actor.
fn create<F>(f: F) -> Addr<Self> where
F: FnOnce(&mut Context<Self>) -> Self + 'static,
Self: Actor<Context = Context<Self>>,
fn create<F>(f: F) -> Addr<Self> where
F: FnOnce(&mut Context<Self>) -> Self + 'static,
Self: Actor<Context = Context<Self>>,
Use create
method, if you need Context
object during actor initialization. Read more
impl<H: IntoHttpHandler> Handler<Signal> for HttpServer<H>
[src]
impl<H: IntoHttpHandler> Handler<Signal> for HttpServer<H>
Signals support
Handle SIGINT
, SIGTERM
, SIGQUIT
signals and stop actix system
message to System
actor.
type Result = ()
The type of value that this handle will return
fn handle(&mut self, msg: Signal, ctx: &mut Context<Self>)
[src]
fn handle(&mut self, msg: Signal, ctx: &mut Context<Self>)
Method is called for every message received by this Actor
impl<H: IntoHttpHandler> Handler<PauseServer> for HttpServer<H>
[src]
impl<H: IntoHttpHandler> Handler<PauseServer> for HttpServer<H>
type Result = ()
The type of value that this handle will return
fn handle(&mut self, _: PauseServer, _: &mut Context<Self>)
[src]
fn handle(&mut self, _: PauseServer, _: &mut Context<Self>)
Method is called for every message received by this Actor
impl<H: IntoHttpHandler> Handler<ResumeServer> for HttpServer<H>
[src]
impl<H: IntoHttpHandler> Handler<ResumeServer> for HttpServer<H>
type Result = ()
The type of value that this handle will return
fn handle(&mut self, _: ResumeServer, _: &mut Context<Self>)
[src]
fn handle(&mut self, _: ResumeServer, _: &mut Context<Self>)
Method is called for every message received by this Actor
impl<H: IntoHttpHandler> Handler<StopServer> for HttpServer<H>
[src]
impl<H: IntoHttpHandler> Handler<StopServer> for HttpServer<H>
Auto Trait Implementations
impl<H> !Send for HttpServer<H>
impl<H> !Send for HttpServer<H>
impl<H> !Sync for HttpServer<H>
impl<H> !Sync for HttpServer<H>