Expand description
Provide proxy support for Salvo web framework.
§Example
In this example, if the requested URL begins with http://127.0.0.1:5800/, the proxy goes to https://www.rust-lang.org; if the requested URL begins with http://localhost:5800/, the proxy goes to https://crates.io.
use salvo_core::prelude::*;
use salvo_proxy::Proxy;
#[tokio::main]
async fn main() {
let router = Router::new()
.push(
Router::new()
.host("127.0.0.1")
.path("{**rest}")
.goal(Proxy::use_hyper_client("https://www.rust-lang.org")),
)
.push(
Router::new()
.host("localhost")
.path("{**rest}")
.goal(Proxy::use_hyper_client("https://crates.io")),
);
let acceptor = TcpListener::new("0.0.0.0:5800").bind().await;
Server::new(acceptor).serve(router).await;
}Structs§
- Hyper
Client hyper-client - A
Clientimplementation based onhyper_util::client::legacy::Client. - Proxy
- Handler that can proxy request to other server.
- Reqwest
Client reqwest-client - A
Clientimplementation based onreqwest::Client.
Traits§
Functions§
- default_
url_ path_ getter - Default url path getter.
- default_
url_ query_ getter - Default url query getter. This getter just return the query string from request uri.
Type Aliases§
- UrlPart
Getter - Url part getter. You can use this to get the proxied url path or query.