meta data de esta página
  •  

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

Ambos lados, revisión anteriorRevisión previa
aplicaciones:nginx:proxyinverso [042021/08/ 12:34] – [Para balancer la carga] lcaplicaciones:nginx:proxyinverso [182023/01/ 13:36] (actual) – editor externo 127.0.0.1
Línea 1: Línea 1:
 +{{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**
 +
 +<sxh>
 +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;
 +}
 +</sxh>
 +
 +
 +==== Para balancer la carga ====
 +Editamos el fichero de configuración 
 +<sxh>vim /etc/nginx/nginx.com</sxh>
 +
 +Añadimos un bloque del tipo **upstream** deltro del bloque que comienza con http, que quedaría de la siguiente forma
 +
 +<sxh>
 +upstream nombre_cualquiera {
 +  server xxx.xxx.xxx.xxx:8080; # o nombre dns
 +  server xxx.xxx.xxx.xxx:8080; # o nombre dns
 +}
 +</sxh>
 +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
 +
 +<sxh>
 +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;
 +}
 +</sxh>
 +<note>para balancear por defecto usa round robin </note>
 +Para combrar si está correcta la configuración en nginx <sxh>nginx -t </sxh>
 +Para recargar la configuración <sxh>systemctl reload nginx</sxh>
 +
 +
 +==== 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