agregase config para reverse proxy

This commit is contained in:
serxoz 2022-10-25 09:23:45 +02:00
parent 6f657250fd
commit 18443b4f86
2 changed files with 32 additions and 5 deletions

View File

@ -6,12 +6,18 @@ Devolve un link para descargalo.
## Execución ## Execución
``` ```
UPLOADS="/tmp/uploads/" BASE_URL="http://127.0.0.1" PORT=4000 cargo run UPLOADS="/tmp/uploads/" BASE_URL="http://127.0.0.1" PORT=4000 RPROXY=true cargo run
``` ```
As variables de entorno UPLOADS, BASE_URL e PORT son opcionais tendo como valores por defecto: As variables de entorno UPLOADS, BASE_URL, PORT e RPROXY son opcionais,
tendo como valores por defecto:
- UPLOADS = "uploads/" - UPLOADS = "uploads/"
- BASE_URL = "http://127.0.0.1" - BASE_URL = "http://127.0.0.1"
- PORT = 3000 - PORT = 3000
- RPROXY = false
A variable RPROXY convén poñela a "true" si o demonio está executándose detráis de
un "reverse proxy" xa que o PORT non se usará externamente. Así os enlaces mostrarárse
sin o porto.
## Funcionamento ## Funcionamento
``` ```

View File

@ -27,13 +27,34 @@ pub fn env_listen_port() -> u16 {
} }
} }
// le a variable de entorno BASE_URL para configurar o porto de escoita // le a variable de entorno RPROXY para indicar si está detráis dun "reverse proxy"
// e así mostrar na páxina principal o porto ou non
// por defecto: false
pub fn env_rproxy() -> bool {
match env::var_os("RPROXY") {
Some(_) => true,
None => false,
}
}
// le a variable de entorno BASE_URL para configurar a url a mostrar nos enlaces
// dependendo de si está detráis dun "reverse proxy" ou non
// por defecto: http://localhost:3000 // por defecto: http://localhost:3000
pub fn env_base_url() -> String { pub fn env_base_url() -> String {
let port = env_listen_port(); let port = env_listen_port();
match env::var_os("BASE_URL") { match env::var_os("BASE_URL") {
Some(val) => format!("{}:{}", val.into_string().unwrap(), port), Some(val) => {
None => format!("{}:{}", "http://localhost", port), if env_rproxy() {
format!("{}", val.into_string().unwrap())
} else {
format!("{}:{}", val.into_string().unwrap(), port)
}
},
None => {
// si non se especifica unha BASE_URL enténdese que se está levantando
// en local e non influe a variable RPROXY
format!("{}:{}", "http://localhost", port)
},
} }
} }