Variabili e Condizionali

Variabili

Le variabili in NGINX esistono come variabili di configurazione oppure come variabili di NGINX.

Le variabili possono essere ritornate da una location con una semplice direttiva return:

return 200 $my_var;

# oppure, in una stringa
return 200 "My Var: $my_var\n$nginx_var";

Variabili di configurazione

Sono le variabili che vengono settate direttamente nel file di configurazione.

Per impostare una variabile personalizzata:

set $my_var "My Value";
set $my_int 12;
set $my_bool true;

Variabili di NGINX

Sono le variabili costruite e messe a disposizione direttamente da NGINX. Un reference completo di queste variabili si può trovare qui.

Alcune variabili NGINX utili:

  • $host: Node del server richiesto (dominio o indirizzo IP)
  • $uri: URI richiesto al server
  • $args: Parametri in GET richiesti al server
  • $arg_arg-name: Restituisce, se passato, il parametro GET arg-name

Condizionali

NGINX permette l'uso di condizionali if.

ATTENZIONE

L'uso di un if all'interno del contesto location è fortemente sconsigliato, poiché potrebbe portare a dei comportamenti inaspettati.
Più informazioni qui

# Esempio di sintassi

# Controlla la presenza di una chiave API
if ($arg_apikey != 1234) {
    return 401 "Incorrect API key";
}

# Se, per ogni URL, non viene passato l'argomento apikey con
# valore 1234, il server restituisce l'errore 401

location /greet {
    # ...
}

ATTENZIONE

Per ottenere una configurazione valida, è necessario rispettare la presenza degli spazi tra if e la prima parentesi.

Si possono comparare variabili con delle RegEx:

set $weekend false;
if ($date_local ~ 'Saturday|Sunday') {
    set $weekend true;
}
'''