diff --git a/bench/bench.sh b/bench/bench.sh index 428ab62..38d2951 100644 --- a/bench/bench.sh +++ b/bench/bench.sh @@ -1,13 +1,29 @@ #!/bin/sh +# echo "----------------------------" +# echo "Benchmark on rpxy" +# ab -c 16 -n 10000 http://127.0.0.1:8080/index.html + +# echo "----------------------------" +# echo "Benchmark on nginx" +# ab -c 16 -n 10000 http://127.0.0.1:8090/index.html + +# echo "----------------------------" +# echo "Benchmark on caddy" +# ab -c 16 -n 10000 http://127.0.0.1:8100/index.html + + echo "----------------------------" echo "Benchmark on rpxy" -ab -c 100 -n 10000 http://127.0.0.1:8080/index.html # TODO: localhost = 127.0.0.1を解決できるように決めておかんとだめそう +#wrk -t8 -c100 -d30s http://127.0.0.1:8080/index.html +rewrk -c 256 -t 8 -d 15s -h http://127.0.0.1:8080 --pct echo "----------------------------" echo "Benchmark on nginx" -ab -c 100 -n 10000 http://127.0.0.1:8090/index.html +# wrk -t8 -c100 -d30s http://127.0.0.1:8090/index.html +rewrk -c 256 -t 8 -d 15s -h http://127.0.0.1:8090 --pct echo "----------------------------" echo "Benchmark on caddy" -ab -c 100 -n 10000 http://127.0.0.1:8100/index.html +# wrk -t8 -c100 -d30s http://127.0.0.1:8100/index.html +rewrk -c 256 -t 8 -d 15s -h http://127.0.0.1:8100 --pct diff --git a/bench/rpxy.toml b/bench/rpxy.toml index 4c80774..8fb25be 100644 --- a/bench/rpxy.toml +++ b/bench/rpxy.toml @@ -16,7 +16,7 @@ reverse_proxy = [ # Array for load balancing { upstream = [ { location = 'backend-nginx', tls = false, upstream_options = [ - "override_host", + # "override_host", ] }, ] }, # { upstream = [{ location = '192.168.100.100', tls = false }] }, diff --git a/src/proxy/proxy_handler.rs b/src/proxy/proxy_handler.rs index f4fc2c3..c65d44e 100644 --- a/src/proxy/proxy_handler.rs +++ b/src/proxy/proxy_handler.rs @@ -212,6 +212,7 @@ fn generate_request_forwarded( remove_hop_header(headers); // X-Forwarded-For add_forwarding_header(headers, client_addr)?; + println!("{:?}", headers); // Add te: trailer if te_trailer if te_trailers { @@ -285,7 +286,7 @@ fn add_forwarding_header(headers: &mut HeaderMap, client_addr: SocketAddr) -> Re hyper::header::Entry::Vacant(entry) => { entry.insert(client_ip.to_string().parse()?); } - hyper::header::Entry::Occupied(entry) => { + hyper::header::Entry::Occupied(mut entry) => { let client_ip_str = client_ip.to_string(); let mut addr = String::with_capacity(entry.get().as_bytes().len() + 2 + client_ip_str.len()); @@ -293,6 +294,7 @@ fn add_forwarding_header(headers: &mut HeaderMap, client_addr: SocketAddr) -> Re addr.push(','); addr.push(' '); addr.push_str(&client_ip_str); + entry.insert(addr.to_owned().parse()?); } } Ok(())