Skip to content

Commit 527c2dd

Browse files
authored
Support http service graceful restart (#416)
* support http service graceful restart * fix dependencies
1 parent fa60cf0 commit 527c2dd

File tree

20 files changed

+1919
-3
lines changed

20 files changed

+1919
-3
lines changed

cmd/web.go

+23-3
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"code.gitea.io/gitea/routers/repo"
3232
"code.gitea.io/gitea/routers/user"
3333

34+
"github.com/facebookgo/grace/gracehttp"
3435
"github.com/go-macaron/binding"
3536
"github.com/go-macaron/cache"
3637
"github.com/go-macaron/captcha"
@@ -615,10 +616,29 @@ func runWeb(ctx *cli.Context) error {
615616
var err error
616617
switch setting.Protocol {
617618
case setting.HTTP:
618-
err = http.ListenAndServe(listenAddr, m)
619+
err = gracehttp.Serve(&http.Server{
620+
Addr: listenAddr,
621+
Handler: m,
622+
})
619623
case setting.HTTPS:
620-
server := &http.Server{Addr: listenAddr, TLSConfig: &tls.Config{MinVersion: tls.VersionTLS10}, Handler: m}
621-
err = server.ListenAndServeTLS(setting.CertFile, setting.KeyFile)
624+
config := &tls.Config{
625+
MinVersion: tls.VersionTLS10,
626+
}
627+
if config.NextProtos == nil {
628+
config.NextProtos = []string{"http/1.1"}
629+
}
630+
631+
config.Certificates = make([]tls.Certificate, 1)
632+
config.Certificates[0], err = tls.LoadX509KeyPair(setting.CertFile, setting.KeyFile)
633+
if err != nil {
634+
log.Fatal(4, "Failed to load https cert file %s: %v", listenAddr, err)
635+
}
636+
637+
err = gracehttp.Serve(&http.Server{
638+
Addr: listenAddr,
639+
Handler: m,
640+
TLSConfig: config,
641+
})
622642
case setting.FCGI:
623643
err = fcgi.Serve(nil, m)
624644
case setting.UnixSocket:

vendor/github.com/facebookgo/clock/LICENSE

+21
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

vendor/github.com/facebookgo/clock/README.md

+104
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)