2f654419819db1bb579df3eb7572d54c5f26f758
Adding the trailing slash allows to trigger the bench handler for performance measurements in situations where a trailing slash character '/' is added to the request. For example, in traefik addPrefix middleware, if you specify a "/bench" prefix, a request on "http://localhost" will be transformed from "GET /" to "GET /bench/" with no way to remove the trailing '/' (at least without adding another rewrite rule, which would modify measurements).
whoami
Tiny Go webserver that prints os information and HTTP request to output
Usage
Paths
/data?size=n[&unit=u]
: creates a response with a sizen
. The unit of measure, if specified, accepts the following values:KB
,MB
,GB
,TB
(optional, default: bytes)./echo
: webSocket echo./bench
: always return the same response (1
)./[?wait=d]
: returns the whoami information (request and network information). The optionalwait
query parameter can be provided to tell the server to wait before sending the response. The duration is expected in Go'stime.Duration
format (e.g./?wait=100ms
to wait 100 milliseconds)./api
: returns the whoami information as JSON./health
: heath checkGET
,HEAD
, ...: returns a response with the status code defined by thePOST
POST
: changes the status code of theGET
(HEAD
, ...) response.
Flags
cert
: give me a certificate.key
: give me a key.port
: give me a port number. (default: 80)name
: give me a name. (it can be also defined withWHOAMI_NAME
environment variable)
Examples
$ docker run -d -P --name iamfoo traefik/whoami
$ docker inspect --format '{{ .NetworkSettings.Ports }}' iamfoo
map[80/tcp:[{0.0.0.0 32769}]]
$ curl "http://0.0.0.0:32769"
Hostname : 6e0030e67d6a
IP : 127.0.0.1
IP : ::1
IP : 172.17.0.27
IP : fe80::42:acff:fe11:1b
GET / HTTP/1.1
Host: 0.0.0.0:32769
User-Agent: curl/7.35.0
Accept: */*
# updates health check status
$ curl -X POST -d '500' http://localhost:80/health
# calls the health check
$ curl -v http://localhost:80/health
* Trying ::1:80...
* TCP_NODELAY set
* Connected to localhost (::1) port 80 (#0)
> GET /health HTTP/1.1
> Host: localhost:80
> User-Agent: curl/7.65.3
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 500 Internal Server Error
< Date: Mon, 16 Sep 2019 22:52:40 GMT
< Content-Length: 0
docker run -d -P -v ./certs:/certs --name iamfoo traefik/whoami --cert /certs/cert.cer --key /certs/key.key
Description
Languages
Go
88.4%
Dockerfile
8.7%
Makefile
2.9%