mirror of
https://git.proxmox.com/git/proxmox-backup
synced 2025-08-14 00:50:31 +00:00
fix #4095: make http client use proxy config from 'ALL_PROXY' env var
In order to be able to use a proxy with the proxmox-backup-client, use ProxyConfig for parsing proxy server config from the environment. Also added a section in the documentation that describes how to configure the environment if a proxy server should be used. Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com> Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
This commit is contained in:
parent
3259c85ad1
commit
fc65ec4345
@ -69,6 +69,17 @@ Environment Variables
|
|||||||
When set, this value is used to verify the server certificate (only used if
|
When set, this value is used to verify the server certificate (only used if
|
||||||
the system CA certificates cannot validate the certificate).
|
the system CA certificates cannot validate the certificate).
|
||||||
|
|
||||||
|
``ALL_PROXY``
|
||||||
|
When set, the client uses the specified HTTP proxy for all connections to the
|
||||||
|
backup server. Currently only HTTP proxies are supported. Valid proxy
|
||||||
|
configurations have the following format:
|
||||||
|
`[http://][user:password@]<host>[:port]`. Default `port` is 1080, if not
|
||||||
|
otherwise specified.
|
||||||
|
|
||||||
|
|
||||||
|
.. Note:: The recommended solution for shielding hosts is using tunnels such as
|
||||||
|
wireguard, instead of using an HTTP proxy.
|
||||||
|
|
||||||
|
|
||||||
.. Note:: Passwords must be valid UTF-8 and may not contain newlines. For your
|
.. Note:: Passwords must be valid UTF-8 and may not contain newlines. For your
|
||||||
convenience, Proxmox Backup Server only uses the first line as password, so
|
convenience, Proxmox Backup Server only uses the first line as password, so
|
||||||
|
@ -23,6 +23,7 @@ use proxmox_sys::linux::tty;
|
|||||||
|
|
||||||
use proxmox_async::broadcast_future::BroadcastFuture;
|
use proxmox_async::broadcast_future::BroadcastFuture;
|
||||||
use proxmox_http::client::{HttpsConnector, RateLimiter};
|
use proxmox_http::client::{HttpsConnector, RateLimiter};
|
||||||
|
use proxmox_http::ProxyConfig;
|
||||||
use proxmox_http::uri::{build_authority, json_object_to_query};
|
use proxmox_http::uri::{build_authority, json_object_to_query};
|
||||||
|
|
||||||
use pbs_api_types::percent_encoding::DEFAULT_ENCODE_SET;
|
use pbs_api_types::percent_encoding::DEFAULT_ENCODE_SET;
|
||||||
@ -389,6 +390,12 @@ impl HttpClient {
|
|||||||
)))));
|
)))));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
let proxy_config = ProxyConfig::from_proxy_env()?;
|
||||||
|
if let Some(config) = proxy_config {
|
||||||
|
log::info!("Using proxy connection: {}:{}", config.host, config.port);
|
||||||
|
https.set_proxy(config);
|
||||||
|
}
|
||||||
|
|
||||||
let client = Client::builder()
|
let client = Client::builder()
|
||||||
//.http2_initial_stream_window_size( (1 << 31) - 2)
|
//.http2_initial_stream_window_size( (1 << 31) - 2)
|
||||||
//.http2_initial_connection_window_size( (1 << 31) - 2)
|
//.http2_initial_connection_window_size( (1 << 31) - 2)
|
||||||
|
Loading…
Reference in New Issue
Block a user