Nginx ademés d'un servidor web també és un proxy invers.
Introducció
Un proxy invers (“reverse proxy”) fa referència a un servidor encarregat de mostrar contingut d’un o més servidors que alhora romanen ocults del client o usuari.
Un dels “reverse proxy” més utilitzats com a frontal web és nginx.
Crea una màquina Windows Subsystem for Linux (WSL).
Location
Crea un fitxer de configuració nginx.conf:
server {
listen 80;
location / {
proxy_pass http://example.com;
}
}La directiva server configura nginx perquè escolti al port 80.
La directiva proxy_pass dins de [location](https://nginx.org/en/docs/http/ngx_http_core_module.html#location, configura nginx per passar la sol·licitud a un servidor intermediari HTTP.
La funcionalitat de proxy invers s’habilita a través de la directiva proxy_pass.
Amb aquesta configuració, obrir un navegador a la màquina virtual serà el mateix que obrir un navegador a http://example.com.
Arrenca un servidor nginx amb Docker:
Pots veure que nginx es configura amb un fitxer de només lectura:
Obre un navegador a http://localhost:

El contingut és el mateix que el de la pàgina http://example.com.
HTTP Headers
Totes les sol·licituts i respostes HTTP inclouen capçaleres que contenen informació.
Response
Si mires les capçaleres de les respostes localhost i example.com són identiques respecte el contingut:
El ETag és el mateix!
Request
Crea un contenidor “echo” perquè ens torni un document JSON amb el contingut de la sol·licitut HTTP.
Instal·la jq:
Aquestes són les capçaleres que envía curl en la sol·licitut HTTP:
|
{
Configura nginx perquè en lloc de fer proxy a example.com faci proxy a echo.
Show solution
Modifica la configuració de nginx :
server {
listen 80;
location / {
proxy_pass http://localhost:8080;
}
}Torna a carregar nginx amb la nova configuració:
Pots veure que el servidor echo rep uns paràmetres de sol·licitut diferents:
De manera predeterminada, NGINX redefineix dos camps de capçalera a les sol·licituds proxy:
- La capçalera host té com a valor la variable
$proxy_host. - La capçalera connection té com a valor
close.
TODO
S’ha d’acabar d’importar el document de Google Docs Nginx