{{tag> nginx proxy inverso reverse redireccionar }}
==== Proxy inverso con NGINX =====
==== Redireccionar ====
Para redirecionar el tráfico a distintos servidores en en función de la url tenemos que editar el fichero de configuración de nuestro sitio
por ejemplo, /etc/nginx/sites-enabled/intrusos.info y añadir un **location**
location /app1 {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://servidor1:8080;
}
location /app2 {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://servidor2:8080;
}
==== Para balancer la carga ====
Editamos el fichero de configuración
vim /etc/nginx/nginx.com
Añadimos un bloque del tipo **upstream** deltro del bloque que comienza con http, que quedaría de la siguiente forma
upstream nombre_cualquiera {
server xxx.xxx.xxx.xxx:8080; # o nombre dns
server xxx.xxx.xxx.xxx:8080; # o nombre dns
}
Dentro del bloque upstream podemos usar varias opciones más:
* **ip_hash** para que la redirección se envie siempre al server donde ya estamos conectado (para mantener el estado )
* **least_conn** para que la redirección sea al servidor con menor carga (menor número de conexiones);
Una vez que hemos indicado el bloque de servidores para balancear editamos el fichero donde hicimos las redirecciones, para que
quede de la siguiente forma
location /app1 {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://nombre_cualquiera; #el nombre que le dimos en el bloque upstream
}
location /app2 {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://nombre_cualquiera_2:8080;
}
para balancear por defecto usa round robin
Para combrar si está correcta la configuración en nginx nginx -t
Para recargar la configuración systemctl reload nginx
==== Referencias ====
* https://docs.nginx.com/nginx/admin-guide/web-server/reverse-proxy/
* https://www.youtube.com/watch?v=fVM658GMbTo&list=PLqRCtm0kbeHD7A5f8Yft-5qFg-sgXvGzR&index=4