diff --git a/src/main/distrib/data/defaults.properties b/src/main/distrib/data/defaults.properties
index 51fa125..e253064 100644
--- a/src/main/distrib/data/defaults.properties
+++ b/src/main/distrib/data/defaults.properties
@@ -2134,6 +2134,13 @@
 # RESTART REQUIRED
 server.shutdownPort = 8081
 
+# Timeout (in milliseconds) for http and https requests
+# Increase this value if you get java.util.concurrent.TimeoutException errors
+#
+# SINCE 1.9.0
+# RESTART REQUIRED
+server.httpTimeout = 30000
+
 #
 # Gitblit Filestore Settings
 #
diff --git a/src/main/java/com/gitblit/GitBlitServer.java b/src/main/java/com/gitblit/GitBlitServer.java
index 6123a87..731ca8e 100644
--- a/src/main/java/com/gitblit/GitBlitServer.java
+++ b/src/main/java/com/gitblit/GitBlitServer.java
@@ -293,7 +293,7 @@
 
 				ServerConnector connector = new ServerConnector(server, factory);
 				connector.setSoLingerTime(-1);
-				connector.setIdleTimeout(30000);
+				connector.setIdleTimeout(settings.getLong(Keys.server.httpTimeout, 30000L));
 				connector.setPort(params.securePort);
 				String bindInterface = settings.getString(Keys.server.httpsBindInterface, null);
 				if (!StringUtils.isEmpty(bindInterface)) {
@@ -330,7 +330,7 @@
 
 			ServerConnector connector = new ServerConnector(server, new HttpConnectionFactory(httpConfig));
 			connector.setSoLingerTime(-1);
-			connector.setIdleTimeout(30000);
+			connector.setIdleTimeout(settings.getLong(Keys.server.httpTimeout, 30000L));
 			connector.setPort(params.port);
 			String bindInterface = settings.getString(Keys.server.httpBindInterface, null);
 			if (!StringUtils.isEmpty(bindInterface)) {
@@ -608,4 +608,4 @@
 		public String ldapLdifFile;
 
 	}
-}
\ No newline at end of file
+}
