mirror of
https://github.com/photoprism/photoprism.git
synced 2025-12-12 00:34:13 +01:00
Server: Ensure that there is no default read or write timeout #4799
Signed-off-by: Michael Mayer <michael@photoprism.app>
This commit is contained in:
@@ -105,10 +105,18 @@ func Start(ctx context.Context, conf *config.Config) {
|
||||
c.String(http.StatusOK, "OK")
|
||||
})
|
||||
|
||||
// Web server configuration.
|
||||
// Create a new HTTP server instance with no read or write timeout, except for reading the headers:
|
||||
// https://pkg.go.dev/net/http#Server
|
||||
server := &http.Server{
|
||||
ReadHeaderTimeout: time.Minute,
|
||||
ReadTimeout: -1,
|
||||
WriteTimeout: -1,
|
||||
IdleTimeout: 10 * time.Minute,
|
||||
Handler: router,
|
||||
}
|
||||
|
||||
var tlsErr error
|
||||
var tlsManager *autocert.Manager
|
||||
var server *http.Server
|
||||
|
||||
// Listen on a Unix domain socket instead of a TCP port?
|
||||
if unixSocket := conf.HttpSocket(); unixSocket != nil {
|
||||
@@ -149,10 +157,7 @@ func Start(ctx context.Context, conf *config.Config) {
|
||||
|
||||
// Listen on Unix socket, which should be automatically closed and removed after use:
|
||||
// https://pkg.go.dev/net#UnixListener.SetUnlinkOnClose.
|
||||
server = &http.Server{
|
||||
Addr: listener.Addr().String(),
|
||||
Handler: router,
|
||||
}
|
||||
server.Addr = listener.Addr().String()
|
||||
|
||||
log.Infof("server: listening on %s [%s]", unixSocket.Path, time.Since(start))
|
||||
|
||||
@@ -166,11 +171,9 @@ func Start(ctx context.Context, conf *config.Config) {
|
||||
tlsConfig := tlsManager.TLSConfig()
|
||||
tlsConfig.MinVersion = tls.VersionTLS12
|
||||
|
||||
server = &http.Server{
|
||||
Addr: tlsSocket,
|
||||
TLSConfig: tlsConfig,
|
||||
Handler: router,
|
||||
}
|
||||
// Listen on HTTPS socket.
|
||||
server.Addr = tlsSocket
|
||||
server.TLSConfig = tlsConfig
|
||||
|
||||
log.Infof("server: listening on %s [%s]", server.Addr, time.Since(start))
|
||||
|
||||
@@ -184,11 +187,9 @@ func Start(ctx context.Context, conf *config.Config) {
|
||||
MinVersion: tls.VersionTLS12,
|
||||
}
|
||||
|
||||
server = &http.Server{
|
||||
Addr: tlsSocket,
|
||||
TLSConfig: tlsConfig,
|
||||
Handler: router,
|
||||
}
|
||||
// Listen on HTTPS socket.
|
||||
server.Addr = tlsSocket
|
||||
server.TLSConfig = tlsConfig
|
||||
|
||||
log.Infof("server: listening on %s [%s]", server.Addr, time.Since(start))
|
||||
|
||||
@@ -203,10 +204,8 @@ func Start(ctx context.Context, conf *config.Config) {
|
||||
Fail("server: %s", err)
|
||||
return
|
||||
} else {
|
||||
server = &http.Server{
|
||||
Addr: tcpSocket,
|
||||
Handler: router,
|
||||
}
|
||||
// Listen on HTTP socket.
|
||||
server.Addr = tcpSocket
|
||||
|
||||
log.Infof("server: listening on %s [%s]", server.Addr, time.Since(start))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user