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.
This commit is contained in:
parent
5dd56a5ca4
commit
d15b67bd97
|
|
@ -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
|
||||
|
||||
|
|
|
|||
|
|
@ -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|
|
||||
|
|
|
|||
|
|
@ -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}
|
||||
|
|
|
|||
|
|
@ -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<>();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
|
|
@ -41,4 +41,6 @@ public class JettyServerConfig {
|
|||
private int jettyAcceptorPriorityDelta = 0;
|
||||
@Builder.Default
|
||||
private int jettyAcceptQueueSize = 0;
|
||||
@Builder.Default
|
||||
private int jettyHttpMaxRequestHeaderSize = 8192;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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());
|
||||
|
|
|
|||
Loading…
Reference in New Issue