x
This commit is contained in:
1
Cargo.lock
generated
1
Cargo.lock
generated
@@ -2711,6 +2711,7 @@ dependencies = [
|
||||
"reqwest",
|
||||
"serde",
|
||||
"thiserror",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
|
||||
@@ -14,3 +14,4 @@ serde = { workspace = true }
|
||||
thiserror = { workspace = true }
|
||||
bytes = { workspace = true }
|
||||
axum = { workspace = true }
|
||||
tracing = { workspace = true }
|
||||
|
||||
@@ -2,6 +2,7 @@ use axum::{
|
||||
Router, body::Body as AxumBody, extract::State, response::Response as AxumResponse,
|
||||
routing::any,
|
||||
};
|
||||
use tracing::{debug, warn};
|
||||
use bytes::Bytes;
|
||||
use futures_core::Stream;
|
||||
use reqwest::{Client, StatusCode, header};
|
||||
@@ -262,6 +263,7 @@ async fn proxy_handler(
|
||||
let method = req.method().clone();
|
||||
|
||||
let url = format!("{}{}{}", state.base_url, path, query_str);
|
||||
debug!(method = %method, url, "proxying request");
|
||||
let mut req_builder = state.client.request(method, &url);
|
||||
|
||||
// Forward all request headers except hop-by-hop and Host.
|
||||
@@ -286,6 +288,7 @@ async fn proxy_handler(
|
||||
let upstream = match req_builder.send().await {
|
||||
Ok(r) => r,
|
||||
Err(e) => {
|
||||
warn!(error = %e, "upstream request failed");
|
||||
return AxumResponse::builder()
|
||||
.status(StatusCode::BAD_GATEWAY.as_u16())
|
||||
.body(AxumBody::from(e.to_string()))
|
||||
@@ -294,6 +297,7 @@ async fn proxy_handler(
|
||||
};
|
||||
|
||||
let status = upstream.status().as_u16();
|
||||
debug!(status, "upstream response");
|
||||
let resp_headers = upstream.headers().clone();
|
||||
|
||||
let mut builder = AxumResponse::builder().status(status);
|
||||
|
||||
Reference in New Issue
Block a user