mirror of
https://github.com/sadoyan/aralez.git
synced 2026-10-23 22:21:37 +08:00
Restructured cache. Added Redis|Valkey|Dragonfly support.
This commit is contained in:
+12
-12
@@ -2,7 +2,7 @@ use crate::utils::deser::{send_to_worker, serialize_config};
|
||||
use crate::utils::healthcheck;
|
||||
use crate::utils::lazylock::{DOMAINS, GLOBAL_PARAMS, IM_A_MASTER, MASTER_KEY, NODE_STATUS, REVERSE_STORE, WORKERS};
|
||||
use crate::utils::state::{is_first_run, mark_not_first_run};
|
||||
use crate::utils::tools::clone_dashmap_into;
|
||||
use crate::utils::tools::{Die, clone_dashmap_into};
|
||||
use crate::utils::types::*;
|
||||
use dashmap::DashMap;
|
||||
use log::{error, info, warn};
|
||||
@@ -245,7 +245,7 @@ async fn populate_file_upstreams(config: &mut Configuration, parsed: &Config) {
|
||||
}
|
||||
|
||||
{
|
||||
let mut config_guard = GLOBAL_PARAMS.write().expect("Global config lock poisoned");
|
||||
let mut config_guard = GLOBAL_PARAMS.write().die("Global config lock poisoned");
|
||||
config_guard.client_headers = config.client_headers.clone();
|
||||
config_guard.server_headers = config.server_headers.clone();
|
||||
config_guard.extraparams = config.extraparams.clone();
|
||||
@@ -274,8 +274,8 @@ async fn populate_file_upstreams(config: &mut Configuration, parsed: &Config) {
|
||||
}
|
||||
}
|
||||
pub fn parce_main_config(path: &str) -> AppConfig {
|
||||
let data = fs::read_to_string(path).expect("Failed to read main config file");
|
||||
let mut cfo: AppConfig = noyalib::from_str(&data).expect("Failed to parse main config file");
|
||||
let data = fs::read_to_string(path).die("Failed to read main config file");
|
||||
let mut cfo: AppConfig = noyalib::from_str(&data).die("Failed to parse main config file");
|
||||
if let Ok(jwt_key) = env::var("MASTER_KEY") {
|
||||
cfo.master_key = Some(jwt_key);
|
||||
} else if let Ok(jwt_key) = env::var("JWT_KEY") {
|
||||
@@ -301,19 +301,19 @@ pub fn parce_main_config(path: &str) -> AppConfig {
|
||||
|
||||
cfo.proxy_tls_grade = parce_tls_grades(cfo.proxy_tls_grade.clone());
|
||||
if let Some(member) = cfo.cluster_member.clone() {
|
||||
NODE_STATUS.set(Some(Arc::from(member.as_str()))).expect("Config can only be initialized once");
|
||||
let mk = cfo.master_key.clone().expect("In CLuster mode master key must be set");
|
||||
MASTER_KEY.set(Some(Arc::from(mk.as_str()))).expect("Config can only be initialized once");
|
||||
NODE_STATUS.set(Some(Arc::from(member.as_str()))).die("Config can only be initialized once");
|
||||
let mk = cfo.master_key.clone().die("In CLuster mode master key must be set");
|
||||
MASTER_KEY.set(Some(Arc::from(mk.as_str()))).die("Config can only be initialized once");
|
||||
if member == "master" {
|
||||
IM_A_MASTER.set(true).expect("Master status can only be initialized once");
|
||||
let worker_str = cfo.worker_nodes.as_deref().expect("At least one worker must be set in master mode");
|
||||
IM_A_MASTER.set(true).die("Master status can only be initialized once");
|
||||
let worker_str = cfo.worker_nodes.as_deref().die("At least one worker must be set in master mode");
|
||||
let mut wks = Vec::new();
|
||||
for worker in worker_str.split(',') {
|
||||
let clean = worker.replace("//", "");
|
||||
let wk_vec = clean.trim().split(':').collect::<Vec<&str>>();
|
||||
let wk = WorkerNodes {
|
||||
address: Arc::from(wk_vec[1]),
|
||||
port: wk_vec[2].parse::<u16>().expect("Invalid worker port number"),
|
||||
port: wk_vec[2].parse::<u16>().die("Invalid worker port number"),
|
||||
tls: match wk_vec[0] {
|
||||
"https" => true,
|
||||
"http" => false,
|
||||
@@ -324,13 +324,13 @@ pub fn parce_main_config(path: &str) -> AppConfig {
|
||||
wks.push(wk);
|
||||
// println!("{:?}", wk);
|
||||
// if let Some((host, port_str)) = worker.trim().split_once(':') {
|
||||
// let port = port_str.parse::<u16>().expect("Invalid worker port number");
|
||||
// let port = port_str.parse::<u16>().die("Invalid worker port number");
|
||||
// wks.push((host.to_string(), port));
|
||||
// } else {
|
||||
// panic!("Invalid worker format, expected host:port");
|
||||
// }
|
||||
}
|
||||
WORKERS.set(wks).expect("Workers list can only be initialized once");
|
||||
WORKERS.set(wks).die("Workers list can only be initialized once");
|
||||
}
|
||||
}
|
||||
cfo
|
||||
|
||||
Reference in New Issue
Block a user