From 2cda2c0a45b2b1dd7789507b7abc851152a8c64c Mon Sep 17 00:00:00 2001 From: Tim-Paik Date: Wed, 25 Aug 2021 20:41:59 +0800 Subject: [PATCH] 1.0.0-rc.4 add readme and 403 connection close bug fix --- README.md | 36 ++++++++++- screenshot.png | Bin 0 -> 167940 bytes src/main.rs | 163 ++++++++++++++++++++++++------------------------- 3 files changed, 115 insertions(+), 84 deletions(-) create mode 100644 screenshot.png diff --git a/README.md b/README.md index 3408ea6..0f4f5bb 100644 --- a/README.md +++ b/README.md @@ -1 +1,35 @@ -# Srv Dev Server \ No newline at end of file +# Srv Dev Server + +This is a simple HTTP Server for use in a development environment, inspired by [simple-http-server](https://github.com/TheWaWaR/simple-http-server) and [caddy2](https://github.com/caddyserver/caddy), and it is also a practice project for me to learn rust. + +### Screenshot +![screenshot](screenshot.png) + +### Built With + +- ~~[rocket](https://github.com/SergioBenitez/Rocket)~~ Framework used in previous versions +- [clap](https://github.com/clap-rs/clap) Provide command line parameter analysis +- [tera](https://github.com/Keats/tera) Provide template support +- [actix-web](https://github.com/actix/actix-web) Main frame +- [actix-files](https://github.com/actix/actix-web/tree/master/actix-files) Provide static resources +- [actix-web-httpauth](https://github.com/actix/actix-extras/tree/master/actix-web-httpauth) Provide authentication +- [rustls](https://github.com/rustls/rustls) Provide TLS and HTTP/2 support +- [env_logger](https://github.com/env-logger-rs/env_logger) Provide log output + + +## Features + +- Automatic generation of directory listings (default enabled) +- Relative path/absolute path/support +- Brotli/Gzip/Deflate streaming compression support (default disabled, disables Content-length and segmented downloads when enabled) +- Control whether dotfiles are displayed and can be accessed (default disabled) +- HTTP cache support, 304 support, Last-Modified/ETag support, of course you can also turn off cache +- Clearly colored organized log +- Disable access logging or disable all logging support +- Automatically open default browser (default disabled) +- Single-Page Application mode (always serve /index.html when the file is not found) +- Custom listening address (default 0.0.0.0) Custom listening port number (default 8000) +- HTTP Basic Authentication Support +- TLS/SSL support, HTTP/2 support +- One click to enable CORS, custom CORS header support +- cargo doc support \ No newline at end of file diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..92c783d8f2f272e154ca6dee2f8731160922895d GIT binary patch literal 167940 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

&9poD+1pt3+Y$=UWQ~>$B6)q*xV}ay`%6JnyYt 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 Glm8DF8?!S2 literal 0 HcmV?d00001 diff --git a/src/main.rs b/src/main.rs index 3a32131..c29781d 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,7 @@ /* This Source Code Form is subject to the terms of the Mozilla Public * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at https://mozilla.org/MPL/2.0/. */ - + #[macro_use] extern crate clap; #[macro_use] @@ -599,83 +599,81 @@ async fn main() -> std::io::Result<()> { addr }; - env_logger::Builder::from_env( - env_logger::Env::default().default_filter_or("info"), - ) - .format(|buf, record| { - let data = record.args().to_string(); - let mut style = buf.style(); - let blue = style.set_color(Color::Rgb(52, 152, 219)); - let mut style = buf.style(); - let red = style.set_color(Color::Rgb(231, 76, 60)); - let mut style = buf.style(); - let green = style.set_color(Color::Rgb(76, 175, 80)); - if record.target() == "actix_web::middleware::logger" { - let data: Vec<&str> = data.splitn(5, "^").collect(); - let time = blue.value( - chrono::NaiveDateTime::from_str(data[0]) - .unwrap() - .format("%Y/%m/%d %H:%M:%S") - .to_string(), - ); - let ipaddr = blue.value(data[1]); - let status_code = data[2].parse().unwrap_or(500); - let status_code = if status_code < 400 { - green.value(status_code) - } else { - red.value(status_code) - }; - let process_time: Vec<&str> = data[3].splitn(2, ".").collect(); - let process_time = process_time[0].to_string() + "ms"; - let process_time = blue.value(if process_time.len() == 3 { - " ".to_string() + &process_time - } else if process_time.len() == 4 { - " ".to_string() + &process_time - } else { - process_time - }); - let content = blue.value(data[4]); - return writeln!( - buf, - "[{}] {} | {} | {} | {}", - time, ipaddr, status_code, process_time, content - ); - } else if record.target() == "actix_server::builder" { - if data.starts_with("SIGINT received, exiting") { - return writeln!(buf, "\r{}", green.value("[INFO] SIGINT received, exiting")); - // Add '\r' to remove the input ^C - } else { - let data = data.replace("actix-web-service-", ""); - let re1 = regex::Regex::new("Starting (.*) workers").unwrap(); - if re1.is_match(&data) { - return Ok(()); - } - let re2 = regex::Regex::new("Starting \"(.*)\" service on (.*)").unwrap(); - if re2.is_match(&data) { - let addr = re2 - .captures(&data) + env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("info")) + .format(|buf, record| { + let data = record.args().to_string(); + let mut style = buf.style(); + let blue = style.set_color(Color::Rgb(52, 152, 219)); + let mut style = buf.style(); + let red = style.set_color(Color::Rgb(231, 76, 60)); + let mut style = buf.style(); + let green = style.set_color(Color::Rgb(76, 175, 80)); + if record.target() == "actix_web::middleware::logger" { + let data: Vec<&str> = data.splitn(5, "^").collect(); + let time = blue.value( + chrono::NaiveDateTime::from_str(data[0]) .unwrap() - .get(1) - .map_or("", |m| m.as_str()); - let data = format!( - "[INFO] Serving {} on {}", - var("ROOT").unwrap_or(".".to_string()), - addr - ); - return writeln!(buf, "\r{}", green.value(data)); + .format("%Y/%m/%d %H:%M:%S") + .to_string(), + ); + let ipaddr = blue.value(data[1]); + let status_code = data[2].parse().unwrap_or(500); + let status_code = if status_code < 400 { + green.value(status_code) + } else { + red.value(status_code) + }; + let process_time: Vec<&str> = data[3].splitn(2, ".").collect(); + let process_time = process_time[0].to_string() + "ms"; + let process_time = blue.value(if process_time.len() == 3 { + " ".to_string() + &process_time + } else if process_time.len() == 4 { + " ".to_string() + &process_time + } else { + process_time + }); + let content = blue.value(data[4]); + return writeln!( + buf, + "[{}] {} | {} | {} | {}", + time, ipaddr, status_code, process_time, content + ); + } else if record.target() == "actix_server::builder" { + if data.starts_with("SIGINT received, exiting") { + return writeln!(buf, "\r{}", green.value("[INFO] SIGINT received, exiting")); + // Add '\r' to remove the input ^C + } else { + let data = data.replace("actix-web-service-", ""); + let re1 = regex::Regex::new("Starting (.*) workers").unwrap(); + if re1.is_match(&data) { + return Ok(()); + } + let re2 = regex::Regex::new("Starting \"(.*)\" service on (.*)").unwrap(); + if re2.is_match(&data) { + let addr = re2 + .captures(&data) + .unwrap() + .get(1) + .map_or("", |m| m.as_str()); + let data = format!( + "[INFO] Serving {} on {}", + var("ROOT").unwrap_or(".".to_string()), + addr + ); + return writeln!(buf, "\r{}", green.value(data)); + } } } - } - if data.starts_with("[ERROR]") - || data.starts_with("TLS alert") - || data.starts_with("Failed") - { - writeln!(buf, "\r{}", red.value(data)) - } else { - writeln!(buf, "\r{}", green.value(data)) - } - }) - .init(); + if data.starts_with("[ERROR]") + || data.starts_with("TLS alert") + || data.starts_with("Failed") + { + writeln!(buf, "\r{}", red.value(data)) + } else { + writeln!(buf, "\r{}", green.value(data)) + } + }) + .init(); let server = HttpServer::new(move || { let compress = if var("COMPRESS").unwrap_or("false".to_string()) == "true" { @@ -684,11 +682,6 @@ async fn main() -> std::io::Result<()> { http::header::ContentEncoding::Identity }; let app = App::new() - .wrap(middleware::Compress::new(compress)) - .wrap(middleware::Condition::new( - var("ENABLE_AUTH").unwrap_or("false".to_string()) == "true", - actix_web_httpauth::middleware::HttpAuthentication::basic(validator), - )) .wrap_fn(|req, srv| { let paths = PathBuf::from_str(req.path()).unwrap_or(PathBuf::default()); let mut isdotfile = false; @@ -699,7 +692,7 @@ async fn main() -> std::io::Result<()> { } let fut = srv.call(req); async move { - Ok(fut.await?.map_body(|head, mut body| { + Ok(fut.await?.map_body(|head, body| { if var("NOCACHE").unwrap_or("false".to_string()) == "true" { head.headers_mut().insert( http::header::CACHE_CONTROL, @@ -717,13 +710,17 @@ async fn main() -> std::io::Result<()> { { head.status = http::StatusCode::FORBIDDEN; *head.headers_mut() = http::HeaderMap::new(); - let _ = body.take_body(); - head.set_connection_type(http::ConnectionType::Close); + return dev::ResponseBody::Other(actix_web::body::Body::None); } body })) } }) + .wrap(middleware::Compress::new(compress)) + .wrap(middleware::Condition::new( + var("ENABLE_AUTH").unwrap_or("false".to_string()) == "true", + actix_web_httpauth::middleware::HttpAuthentication::basic(validator), + )) .wrap(middleware::Logger::new("%t^%a^%s^%D^%r")); let files = fs::Files::new("/", var("ROOT").unwrap_or(".".to_string())) .use_hidden_files()