Multiple bindings and SSL support
Suave supports binding the application to multiple TCP/IP addresses and ports
combinations. It also supports HTTPS via the interface ITlsProvider
, but the current
recommendation for deploying HTTPS is by letting a reverse proxy manage the HTTPS
termination.
let cfg = { defaultConfig with bindings = [ HttpBinding.create HTTP IPAddress.Loopback 80us HttpBinding.createSimple HTTP "10.0.1.34" 9000 ] listenTimeout = TimeSpan.FromMilliseconds 3000. } choose [ path "/hello" >=> OK "Hello World" NOT_FOUND "Found no handlers" ] |> startWebServer cfg
val cfg : SuaveConfig
Full name: temp.cfg
Full name: temp.cfg
val defaultConfig : SuaveConfig
Full name: Suave.Web.defaultConfig
Full name: Suave.Web.defaultConfig
Multiple items
module HttpBinding
from Suave.Http
--------------------
type HttpBinding =
{scheme: Protocol;
socketBinding: SocketBinding;}
override ToString : unit -> string
member uri : path:string -> query:string -> Uri
static member scheme_ : Property<HttpBinding,Protocol>
static member socketBinding_ : Property<HttpBinding,SocketBinding>
Full name: Suave.Http.HttpBinding
module HttpBinding
from Suave.Http
--------------------
type HttpBinding =
{scheme: Protocol;
socketBinding: SocketBinding;}
override ToString : unit -> string
member uri : path:string -> query:string -> Uri
static member scheme_ : Property<HttpBinding,Protocol>
static member socketBinding_ : Property<HttpBinding,SocketBinding>
Full name: Suave.Http.HttpBinding
val create : scheme:Protocol -> ip:System.Net.IPAddress -> port:Sockets.Port -> HttpBinding
Full name: Suave.Http.HttpBinding.create
Full name: Suave.Http.HttpBinding.create
union case Protocol.HTTP: Protocol
val createSimple : scheme:Protocol -> ip:string -> port:int -> HttpBinding
Full name: Suave.Http.HttpBinding.createSimple
Full name: Suave.Http.HttpBinding.createSimple
val choose : options:WebPart<'a> list -> WebPart<'a>
Full name: Suave.WebPart.choose
Full name: Suave.WebPart.choose
val path : pathAfterDomain:string -> WebPart
Full name: Suave.Filters.path
Full name: Suave.Filters.path
val OK : body:string -> WebPart
Full name: Suave.Successful.OK
Full name: Suave.Successful.OK
val NOT_FOUND : body:string -> WebPart
Full name: Suave.RequestErrors.NOT_FOUND
Full name: Suave.RequestErrors.NOT_FOUND
val startWebServer : config:SuaveConfig -> webpart:WebPart -> unit
Full name: Suave.Web.startWebServer
Full name: Suave.Web.startWebServer