Compare commits
2 Commits
Author | SHA1 | Date | |
---|---|---|---|
c36625cb56 | |||
a067f0ee4c |
@ -22,7 +22,7 @@ Tiny Go webserver that prints os information and HTTP request to output
|
|||||||
|
|
||||||
- `cert`: give me a certificate.
|
- `cert`: give me a certificate.
|
||||||
- `key`: give me a key.
|
- `key`: give me a key.
|
||||||
- `port`: give me a port number. (it can be also defined with `WHOAMI_PORT` environment variable) (default: 80)
|
- `port`: give me a port number. (it can be also defined with `WHOAMI_PORT_NUMBER` environment variable) (default: 80)
|
||||||
- `name`: give me a name. (it can be also defined with `WHOAMI_NAME` environment variable)
|
- `name`: give me a name. (it can be also defined with `WHOAMI_NAME` environment variable)
|
||||||
|
|
||||||
## Examples
|
## Examples
|
||||||
|
27
app.go
27
app.go
@ -43,7 +43,7 @@ func init() {
|
|||||||
flag.StringVar(&cert, "cert", "", "give me a certificate")
|
flag.StringVar(&cert, "cert", "", "give me a certificate")
|
||||||
flag.StringVar(&key, "key", "", "give me a key")
|
flag.StringVar(&key, "key", "", "give me a key")
|
||||||
flag.StringVar(&ca, "cacert", "", "give me a CA chain, enforces mutual TLS")
|
flag.StringVar(&ca, "cacert", "", "give me a CA chain, enforces mutual TLS")
|
||||||
flag.StringVar(&port, "port", getEnv("WHOAMI_PORT", "80"), "give me a port number")
|
flag.StringVar(&port, "port", getEnv("WHOAMI_PORT_NUMBER", "80"), "give me a port number")
|
||||||
flag.StringVar(&name, "name", os.Getenv("WHOAMI_NAME"), "give me a name")
|
flag.StringVar(&name, "name", os.Getenv("WHOAMI_NAME"), "give me a name")
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -55,28 +55,33 @@ var upgrader = websocket.Upgrader{
|
|||||||
func main() {
|
func main() {
|
||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
http.HandleFunc("/data", dataHandler)
|
mux := http.NewServeMux()
|
||||||
http.HandleFunc("/echo", echoHandler)
|
mux.HandleFunc("/data", dataHandler)
|
||||||
http.HandleFunc("/bench", benchHandler)
|
mux.HandleFunc("/echo", echoHandler)
|
||||||
http.HandleFunc("/", whoamiHandler)
|
mux.HandleFunc("/bench", benchHandler)
|
||||||
http.HandleFunc("/api", apiHandler)
|
mux.HandleFunc("/", whoamiHandler)
|
||||||
http.HandleFunc("/health", healthHandler)
|
mux.HandleFunc("/api", apiHandler)
|
||||||
|
mux.HandleFunc("/health", healthHandler)
|
||||||
|
|
||||||
fmt.Println("Starting up on port " + port)
|
if cert == "" || key == "" {
|
||||||
|
log.Printf("Starting up on port %s", port)
|
||||||
|
|
||||||
|
log.Fatal(http.ListenAndServe(":"+port, mux))
|
||||||
|
}
|
||||||
|
|
||||||
if len(cert) > 0 && len(key) > 0 {
|
|
||||||
server := &http.Server{
|
server := &http.Server{
|
||||||
Addr: ":" + port,
|
Addr: ":" + port,
|
||||||
|
Handler: mux,
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(ca) > 0 {
|
if len(ca) > 0 {
|
||||||
server.TLSConfig = setupMutualTLS(ca)
|
server.TLSConfig = setupMutualTLS(ca)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
log.Printf("Starting up with TLS on port %s", port)
|
||||||
|
|
||||||
log.Fatal(server.ListenAndServeTLS(cert, key))
|
log.Fatal(server.ListenAndServeTLS(cert, key))
|
||||||
}
|
}
|
||||||
log.Fatal(http.ListenAndServe(":"+port, nil))
|
|
||||||
}
|
|
||||||
|
|
||||||
func setupMutualTLS(ca string) *tls.Config {
|
func setupMutualTLS(ca string) *tls.Config {
|
||||||
clientCACert, err := ioutil.ReadFile(ca)
|
clientCACert, err := ioutil.ReadFile(ca)
|
||||||
|
Reference in New Issue
Block a user