You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
816 B
Go
40 lines
816 B
Go
package main
|
|
|
|
import (
|
|
"log"
|
|
"net/http"
|
|
"os"
|
|
|
|
_ "github.com/joho/godotenv/autoload"
|
|
)
|
|
|
|
var cert string = os.Getenv("SERVER_CERT_FILE")
|
|
var key string = os.Getenv("SERVER_KEY_FILE")
|
|
var httpAddr string = ":8080"
|
|
var httpsAddr string = ":8443"
|
|
|
|
type Server struct{}
|
|
|
|
func (server *Server) ServeHTTP(rw http.ResponseWriter, req *http.Request) {
|
|
log.Printf("%v %v", req.Method, req.URL.String())
|
|
_, _ = rw.Write([]byte("hello world\n"))
|
|
}
|
|
|
|
func main() {
|
|
go func() {
|
|
server := &http.Server{
|
|
Addr: httpAddr,
|
|
Handler: &Server{},
|
|
}
|
|
log.Printf("http server listen at %v\n", httpAddr)
|
|
log.Fatal(server.ListenAndServe())
|
|
}()
|
|
|
|
server := &http.Server{
|
|
Addr: httpsAddr,
|
|
Handler: &Server{},
|
|
}
|
|
log.Printf("https server listen at %v\n", httpsAddr)
|
|
log.Fatal(server.ListenAndServeTLS(cert, key))
|
|
}
|