Added default HTTP/2 Mode

+ Added automatic HTTP/2 switch to TLS mode (Related to #40)
This commit is contained in:
Toby Chui 2023-10-20 13:44:47 +08:00
parent 156fa5dace
commit 172479e4fb

View File

@ -95,6 +95,7 @@ func (router *Router) StartProxyService() error {
} }
if router.Option.UseTls { if router.Option.UseTls {
/*
//Serve with TLS mode //Serve with TLS mode
ln, err := tls.Listen("tcp", ":"+strconv.Itoa(router.Option.Port), config) ln, err := tls.Listen("tcp", ":"+strconv.Itoa(router.Option.Port), config)
if err != nil { if err != nil {
@ -103,7 +104,12 @@ func (router *Router) StartProxyService() error {
return err return err
} }
router.tlsListener = ln router.tlsListener = ln
router.server = &http.Server{Addr: ":" + strconv.Itoa(router.Option.Port), Handler: router.mux} */
router.server = &http.Server{
Addr: ":" + strconv.Itoa(router.Option.Port),
Handler: router.mux,
TLSConfig: config,
}
router.Running = true router.Running = true
if router.Option.Port != 80 && router.Option.ForceHttpsRedirect { if router.Option.Port != 80 && router.Option.ForceHttpsRedirect {
@ -143,7 +149,7 @@ func (router *Router) StartProxyService() error {
if err := httpServer.ListenAndServe(); err != nil && err != http.ErrServerClosed { if err := httpServer.ListenAndServe(); err != nil && err != http.ErrServerClosed {
//Unable to startup port 80 listener. Handle shutdown process gracefully //Unable to startup port 80 listener. Handle shutdown process gracefully
stopChan <- true stopChan <- true
log.Fatalf("Could not start server: %v\n", err) log.Fatalf("Could not start redirection server: %v\n", err)
} }
}() }()
router.tlsRedirectStop = stopChan router.tlsRedirectStop = stopChan
@ -152,8 +158,8 @@ func (router *Router) StartProxyService() error {
//Start the TLS server //Start the TLS server
log.Println("Reverse proxy service started in the background (TLS mode)") log.Println("Reverse proxy service started in the background (TLS mode)")
go func() { go func() {
if err := router.server.Serve(ln); err != nil && err != http.ErrServerClosed { if err := router.server.ListenAndServeTLS("", ""); err != nil && err != http.ErrServerClosed {
log.Fatalf("Could not start server: %v\n", err) log.Fatalf("Could not start proxy server: %v\n", err)
} }
}() }()
} else { } else {