This is an automated email from the ASF dual-hosted git repository.
wusheng pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/skywalking.git
The following commit(s) were added to refs/heads/master by this push:
new d15b67b Allow configuring max request header size (#7249)
d15b67b is described below
commit d15b67bd97cfe8386df0c61198d9f1ca2060089b
Author: Sergi Castro <[email protected]>
AuthorDate: Tue Jul 6 09:10:15 2021 +0200
Allow configuring max request header size (#7249)
* Allow configuring max request header size
This allows configuring the HTTP max request header size from the jetty
server.
By default it uses 8192, the same jetty default.
---
CHANGES.md | 1 +
docs/en/setup/backend/configuration-vocabulary.md | 2 ++
oap-server/server-bootstrap/src/main/resources/application.yml | 2 ++
.../org/apache/skywalking/oap/server/core/CoreModuleConfig.java | 6 ++++++
.../org/apache/skywalking/oap/server/core/CoreModuleProvider.java | 2 ++
.../skywalking/oap/server/library/server/jetty/JettyServer.java | 7 ++++++-
.../oap/server/library/server/jetty/JettyServerConfig.java | 2 ++
.../oap/server/receiver/sharing/server/SharingServerConfig.java | 6 ++++++
.../receiver/sharing/server/SharingServerModuleProvider.java | 3 ++-
9 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/CHANGES.md b/CHANGES.md
index b9b6abc..f8d8c70 100644
--- a/CHANGES.md
+++ b/CHANGES.md
@@ -73,6 +73,7 @@ Release Notes.
* Fix InfluxDB storage-plugin Metrics#multiGet issue.
* Replace zuul proxy with spring cloud gateway 2.x. in webapp module.
* Upgrade etcd cluster coordinator and dynamic configuration to v3.x.
+* Configuration: Allow to configure server maximum request header size.
#### UI
diff --git a/docs/en/setup/backend/configuration-vocabulary.md
b/docs/en/setup/backend/configuration-vocabulary.md
index 843f95e..cf8e0c4 100644
--- a/docs/en/setup/backend/configuration-vocabulary.md
+++ b/docs/en/setup/backend/configuration-vocabulary.md
@@ -12,6 +12,7 @@ core|default|role|Option values, `Mixed/Receiver/Aggregator`.
**Receiver** mode
| - | - | restIdleTimeOut| Connector idle timeout in milliseconds of restful
service| SW_CORE_REST_JETTY_IDLE_TIMEOUT|30000|
| - | - | restAcceptorPriorityDelta| Thread priority delta to give to acceptor
threads of restful service| SW_CORE_REST_JETTY_DELTA|0|
| - | - | restAcceptQueueSize| ServerSocketChannel backlog of restful
service| SW_CORE_REST_JETTY_QUEUE_SIZE|0|
+| - | - | httpMaxRequestHeaderSize| Maximum request header size accepted|
SW_CORE_HTTP_MAX_REQUEST_HEADER_SIZE|8192|
| - | - | gRPCHost|Binding IP of gRPC service. Services include gRPC data
report and internal communication among OAP nodes|SW_CORE_GRPC_HOST|0.0.0.0|
| - | - | gRPCPort| Binding port of gRPC service | SW_CORE_GRPC_PORT|11800|
| - | - | gRPCSslEnabled| Activate SSL for gRPC service |
SW_CORE_GRPC_SSL_ENABLED|false|
@@ -175,6 +176,7 @@ core|default|role|Option values,
`Mixed/Receiver/Aggregator`. **Receiver** mode
| - | - | restIdleTimeOut| Connector idle timeout in milliseconds of restful
service| SW_RECEIVER_SHARING_JETTY_IDLE_TIMEOUT|30000|
| - | - | restAcceptorPriorityDelta| Thread priority delta to give to acceptor
threads of restful service| SW_RECEIVER_SHARING_JETTY_DELTA|0|
| - | - | restAcceptQueueSize| ServerSocketChannel backlog of restful
service| SW_RECEIVER_SHARING_JETTY_QUEUE_SIZE|0|
+| - | - | httpMaxRequestHeaderSize| Maximum request header size accepted|
SW_RECEIVER_SHARING_HTTP_MAX_REQUEST_HEADER_SIZE|8192|
| - | - | gRPCHost|Binding IP of gRPC service. Services include gRPC data
report and internal communication among OAP nodes| SW_RECEIVER_GRPC_HOST |
0.0.0.0. Not Activated |
| - | - | gRPCPort| Binding port of gRPC service | SW_RECEIVER_GRPC_PORT | Not
Activated |
| - | - | gRPCThreadPoolSize|Pool size of gRPC server|
SW_RECEIVER_GRPC_THREAD_POOL_SIZE | CPU core * 4|
diff --git a/oap-server/server-bootstrap/src/main/resources/application.yml
b/oap-server/server-bootstrap/src/main/resources/application.yml
index 7866d4c..bf5f33f 100755
--- a/oap-server/server-bootstrap/src/main/resources/application.yml
+++ b/oap-server/server-bootstrap/src/main/resources/application.yml
@@ -71,6 +71,7 @@ core:
restIdleTimeOut: ${SW_CORE_REST_JETTY_IDLE_TIMEOUT:30000}
restAcceptorPriorityDelta: ${SW_CORE_REST_JETTY_DELTA:0}
restAcceptQueueSize: ${SW_CORE_REST_JETTY_QUEUE_SIZE:0}
+ httpMaxRequestHeaderSize: ${SW_CORE_HTTP_MAX_REQUEST_HEADER_SIZE:8192}
gRPCHost: ${SW_CORE_GRPC_HOST:0.0.0.0}
gRPCPort: ${SW_CORE_GRPC_PORT:11800}
maxConcurrentCallsPerConnection: ${SW_CORE_GRPC_MAX_CONCURRENT_CALL:0}
@@ -296,6 +297,7 @@ receiver-sharing-server:
restIdleTimeOut: ${SW_RECEIVER_SHARING_JETTY_IDLE_TIMEOUT:30000}
restAcceptorPriorityDelta: ${SW_RECEIVER_SHARING_JETTY_DELTA:0}
restAcceptQueueSize: ${SW_RECEIVER_SHARING_JETTY_QUEUE_SIZE:0}
+ httpMaxRequestHeaderSize:
${SW_RECEIVER_SHARING_HTTP_MAX_REQUEST_HEADER_SIZE:8192}
# For gRPC server
gRPCHost: ${SW_RECEIVER_GRPC_HOST:0.0.0.0}
gRPCPort: ${SW_RECEIVER_GRPC_PORT:0}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
index 5d3a022..6fe780b 100644
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleConfig.java
@@ -182,6 +182,12 @@ public class CoreModuleConfig extends ModuleConfig {
@Setter
private boolean enableEndpointNameGroupingByOpenapi = true;
+ /**
+ * The maximum size in bytes allowed for request headers.
+ * Use -1 to disable it.
+ */
+ private int httpMaxRequestHeaderSize = 8192;
+
public CoreModuleConfig() {
this.downsampling = new ArrayList<>();
}
diff --git
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
index af6c2ec..31f5112 100755
---
a/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
+++
b/oap-server/server-core/src/main/java/org/apache/skywalking/oap/server/core/CoreModuleProvider.java
@@ -221,6 +221,8 @@ public class CoreModuleProvider extends ModuleProvider {
.jettyMaxThreads(moduleConfig.getRestMaxThreads())
.jettyAcceptQueueSize(
moduleConfig.getRestAcceptQueueSize())
+
.jettyHttpMaxRequestHeaderSize(
+
moduleConfig.getHttpMaxRequestHeaderSize())
.build();
jettyServer = new JettyServer(jettyServerConfig);
jettyServer.initialize();
diff --git
a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServer.java
b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServer.java
index 388fbc2..fb8c95f 100644
---
a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServer.java
+++
b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServer.java
@@ -23,6 +23,8 @@ import org.apache.skywalking.oap.server.library.server.Server;
import org.apache.skywalking.oap.server.library.server.ServerException;
import org.eclipse.jetty.server.Connector;
import org.eclipse.jetty.server.ServerConnector;
+import org.eclipse.jetty.server.HttpConfiguration;
+import org.eclipse.jetty.server.HttpConnectionFactory;
import org.eclipse.jetty.servlet.ServletContextHandler;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.servlet.ServletMapping;
@@ -60,7 +62,10 @@ public class JettyServer implements Server {
server = new org.eclipse.jetty.server.Server(threadPool);
- ServerConnector connector = new ServerConnector(server);
+ HttpConfiguration httpConfiguration = new HttpConfiguration();
+
httpConfiguration.setRequestHeaderSize(jettyServerConfig.getJettyHttpMaxRequestHeaderSize());
+
+ ServerConnector connector = new ServerConnector(server, new
HttpConnectionFactory(httpConfiguration));
connector.setHost(jettyServerConfig.getHost());
connector.setPort(jettyServerConfig.getPort());
connector.setIdleTimeout(jettyServerConfig.getJettyIdleTimeOut());
diff --git
a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServerConfig.java
b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServerConfig.java
index c6ca056..64fb5fc 100644
---
a/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServerConfig.java
+++
b/oap-server/server-library/library-server/src/main/java/org/apache/skywalking/oap/server/library/server/jetty/JettyServerConfig.java
@@ -41,4 +41,6 @@ public class JettyServerConfig {
private int jettyAcceptorPriorityDelta = 0;
@Builder.Default
private int jettyAcceptQueueSize = 0;
+ @Builder.Default
+ private int jettyHttpMaxRequestHeaderSize = 8192;
}
diff --git
a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java
b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java
index c3866df..afea38d 100644
---
a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java
+++
b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerConfig.java
@@ -50,4 +50,10 @@ public class SharingServerConfig extends ModuleConfig {
private boolean gRPCSslEnabled = false;
private String gRPCSslKeyPath;
private String gRPCSslCertChainPath;
+
+ /**
+ * The maximum size in bytes allowed for request headers.
+ * Use -1 to disable it.
+ */
+ private int httpMaxRequestHeaderSize = 8192;
}
diff --git
a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java
b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java
index 9984d42..53613ab 100644
---
a/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java
+++
b/oap-server/server-receiver-plugin/skywalking-sharing-server-plugin/src/main/java/org/apache/skywalking/oap/server/receiver/sharing/server/SharingServerModuleProvider.java
@@ -78,7 +78,8 @@ public class SharingServerModuleProvider extends
ModuleProvider {
.jettyAcceptQueueSize(config.getRestAcceptQueueSize())
.jettyAcceptorPriorityDelta(
config.getRestAcceptorPriorityDelta())
-
.jettyIdleTimeOut(config.getRestIdleTimeOut()).build();
+ .jettyIdleTimeOut(config.getRestIdleTimeOut())
+
.jettyHttpMaxRequestHeaderSize(config.getHttpMaxRequestHeaderSize()).build();
jettyServerConfig.setHost(Strings.isBlank(config.getRestHost()) ?
"0.0.0.0" : config.getRestHost());
jettyServerConfig.setPort(config.getRestPort());
jettyServerConfig.setContextPath(config.getRestContextPath());