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
```
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/"
- BASE_URL = "http://127.0.0.1"
- 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
```

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
pub fn env_base_url() -> String {
let port = env_listen_port();
match env::var_os("BASE_URL") {
Some(val) => format!("{}:{}", val.into_string().unwrap(), port),
None => format!("{}:{}", "http://localhost", port),
Some(val) => {
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)
},
}
}