Plug.Adapters.Cowboy
Adapter interface to the Cowboy webserver.
Options
:ip
- the ip to bind the server to. Must be a tuple in the format{x, y, z, w}
.:port
- the port to run the server. Defaults to 4000 (http) and 4040 (https).:acceptors
- the number of acceptors for the listener. Defaults to 100.:max_connections
- max number of connections supported. Defaults to:infinity
.:dispatch
- manually configure Cowboy’s dispatch. If this option is used, the given plug won’t be initialized nor dispatched to (and doing so becomes the user’s responsibility).:ref
- the reference name to be used. Defaults toplug.HTTP
(http) andplug.HTTPS
(https). This is the value that needs to be given on shutdown.:compress
- Cowboy will attempt to compress the response body.
Summary↑
child_spec(scheme, plug, opts, cowboy_options \\ []) | Returns a child spec to be supervised by your application |
http(plug, opts, cowboy_options \\ []) | Run cowboy under http |
https(plug, opts, cowboy_options \\ []) | Run cowboy under https |
shutdown(ref) | Shutdowns the given reference |
Functions
Returns a child spec to be supervised by your application.
Specs:
Run cowboy under http.
Example
# Starts a new interface
Plug.Adapters.Cowboy.http MyPlug, [], port: 80
# The interface above can be shutdown with
Plug.Adapters.Cowboy.shutdown MyPlug.HTTP
Specs:
Run cowboy under https.
Besides the options described in the module documentation, this module also accepts all options defined in [the `ssl` erlang module] (http://www.erlang.org/doc/man/ssl.html), like keyfile, certfile, cacertfile and others.
The certificate files can be given as a relative path.
For such, the :otp_app
option must also be given and
certificates will be looked from the priv directory of
the given application.
Example
# Starts a new interface
Plug.Adapters.Cowboy.https MyPlug, [],
port: 443,
password: "SECRET",
otp_app: :my_app,
keyfile: "ssl/key.pem",
certfile: "ssl/cert.pem"
# The interface above can be shutdown with
Plug.Adapters.Cowboy.shutdown MyPlug.HTTPS
Shutdowns the given reference.