71 lines
2.2 KiB
Rust
71 lines
2.2 KiB
Rust
use log::{info, LevelFilter};
|
|
use pingora::{
|
|
server::{configuration::Opt, Server},
|
|
services::{listening::Service as ListeningService, Service},
|
|
};
|
|
use pretty_env_logger::env_logger::Builder;
|
|
use structopt::StructOpt;
|
|
|
|
mod app;
|
|
mod service;
|
|
mod main2;
|
|
|
|
pub fn main() {
|
|
init_logger();
|
|
main2::test_main();
|
|
panic!("END");
|
|
|
|
let opt = Some(Opt::from_args());
|
|
let mut my_server = Server::new(opt).unwrap();
|
|
my_server.bootstrap();
|
|
|
|
let proxy_service_tcp = service::proxy_service_tcp(
|
|
&my_server.configuration,
|
|
"0.0.0.0:8800",
|
|
vec![],
|
|
);
|
|
|
|
let proxy_service_ssl2 = service::proxy_service_tls(
|
|
&my_server.configuration,
|
|
"0.0.0.0:4430",
|
|
vec![
|
|
// HostConfig {
|
|
// proxy_addr: "127.0.0.1:4000".to_owned(),
|
|
// proxy_tls: false,
|
|
// proxy_hostname: "somedomain.com".to_owned(),
|
|
// cert_path: format!("{}/keys/some_domain_cert.crt", env!("CARGO_MANIFEST_DIR")),
|
|
// key_path: format!("{}/keys/some_domain_key.pem", env!("CARGO_MANIFEST_DIR")),
|
|
// },
|
|
// HostConfig {
|
|
// proxy_addr: "1.1.1.1:443".to_owned(),
|
|
// proxy_tls: true,
|
|
// proxy_hostname: "one.one.one.one".to_owned(),
|
|
// cert_path: format!("{}/keys/one_cert.crt", env!("CARGO_MANIFEST_DIR")),
|
|
// key_path: format!("{}/keys/one_key.pem", env!("CARGO_MANIFEST_DIR")),
|
|
// },
|
|
],
|
|
);
|
|
|
|
let mut prometheus_service_http = ListeningService::prometheus_http_service();
|
|
prometheus_service_http.add_tcp("127.0.0.1:6150");
|
|
|
|
info!("start listen...");
|
|
let services: Vec<Box<dyn Service>> = vec![
|
|
Box::new(proxy_service_tcp),
|
|
Box::new(proxy_service_ssl2),
|
|
Box::new(prometheus_service_http),
|
|
];
|
|
my_server.add_services(services);
|
|
my_server.run_forever();
|
|
}
|
|
|
|
fn init_logger() {
|
|
let mut builder = Builder::new();
|
|
builder.filter_level(LevelFilter::Info);
|
|
let _ = builder.try_init();
|
|
|
|
// if std::env::var("RUST_LOG").is_err() {
|
|
// std::env::set_var("RUST_LOG", "pingora_reverse_proxy=debug");
|
|
// }
|
|
// pretty_env_logger::init_timed();
|
|
} |