From b870baf1c35541c0f4b33a9ad5235291f6ce651a Mon Sep 17 00:00:00 2001 From: Jun Kurihara Date: Mon, 27 Jun 2022 16:10:23 -0400 Subject: [PATCH] add bench docker --- bench/docker-compose.yml | 30 ++++++++++++++++++++++++++++++ config-example.toml | 3 +++ src/config/parse.rs | 8 ++++++++ src/config/toml.rs | 2 ++ src/constants.rs | 4 ++-- 5 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 bench/docker-compose.yml diff --git a/bench/docker-compose.yml b/bench/docker-compose.yml new file mode 100644 index 0000000..5294d9d --- /dev/null +++ b/bench/docker-compose.yml @@ -0,0 +1,30 @@ +version: "3" +services: + nginx: + image: nginx:alpine + container_name: nginx-web + restart: unless-stopped + environment: + - VIRTUAL_HOST=localhost + - VIRTUAL_PORT=80 + ports: + - 127.0.0.1:8888:80 + logging: + options: + max-size: "10m" + max-file: "3" + + nginx-rp: + image: jwilder/nginx-proxy:alpine + container_name: proxy-nginx + ports: + - 127.0.0.1:8090:80 + restart: always + tty: false + privileged: true + volumes: + - /var/run/docker.sock:/tmp/docker.sock:ro + logging: + options: + max-size: "10m" + max-file: "3" diff --git a/config-example.toml b/config-example.toml index 4d69180..18f204b 100644 --- a/config-example.toml +++ b/config-example.toml @@ -10,6 +10,9 @@ listen_port = 8080 listen_port_tls = 8443 +max_concurrent_streams = 128 +max_clients = 512 + ################################### # Backend settings # ################################### diff --git a/src/config/parse.rs b/src/config/parse.rs index f35ccf2..af518bd 100644 --- a/src/config/parse.rs +++ b/src/config/parse.rs @@ -59,6 +59,14 @@ pub fn parse_opts(globals: &mut Globals, backends: &mut HashMap info!("Listen port: {} (for TLS)", globals.https_port.unwrap()); } + // max values + if let Some(c) = config.max_clients { + globals.max_clients = c as usize; + } + if let Some(c) = config.max_concurrent_streams { + globals.max_concurrent_streams = c; + } + // backend apps ensure!(config.apps.is_some(), "Missing application spec."); let apps = config.apps.unwrap(); diff --git a/src/config/toml.rs b/src/config/toml.rs index e614dbe..23853d3 100644 --- a/src/config/toml.rs +++ b/src/config/toml.rs @@ -6,6 +6,8 @@ use std::{collections::HashMap, fs}; pub struct ConfigToml { pub listen_port: Option, pub listen_port_tls: Option, + pub max_concurrent_streams: Option, + pub max_clients: Option, pub apps: Option, } diff --git a/src/constants.rs b/src/constants.rs index 927ffc1..7e0f419 100644 --- a/src/constants.rs +++ b/src/constants.rs @@ -1,6 +1,6 @@ pub const LISTEN_ADDRESSES: &[&str] = &["0.0.0.0", "[::]"]; -pub const HTTP_LISTEN_PORT: u16 = 8080; -pub const HTTPS_LISTEN_PORT: u16 = 8443; +// pub const HTTP_LISTEN_PORT: u16 = 8080; +// pub const HTTPS_LISTEN_PORT: u16 = 8443; pub const TIMEOUT_SEC: u64 = 10; pub const MAX_CLIENTS: usize = 512; pub const MAX_CONCURRENT_STREAMS: u32 = 16;