NGINX como proxy reverso

NGINX es un servidor web con excelente rendimiento y bajo consumo de memoria. NGINX puede usarse como proxy reverso HTTP, cómo proxy genérico TCP/UPD, como un servidor proxy de correo y como como balanceador de carga, en el día de hoy instalaremos NGINX y lo usaremos como proxy génerico TPC/UPD.

Instalar

# apt install nginx 

Iniciar

# systemctl start nginx

Detener

$ systemctl stop nginx 

Reiniciar

# systemctl restart nginx

Aranque automático

Con el siguient comando garantizamos que NGINX se iniciará automáticamente después de un reinicio del sistema operativo:

# systemctl enable nginx

Refrescar configuración

Debe ejecutar el siguiente comando luego de realizar cualquier modificación a cualquier fichero de configuración

# systemctl reload nginx

Chequeando los ficheros de configuración

A continuación mostramos donde se encuentra los ficheros de configuración para el servidor web.

/etc/nginx/
├── conf.d
├── modules-available
├── modules-enabled
├── sites-available
├── sites-enabled
└── snippets

Los 2 DIR importantes para nuestro caso son:

  • sites-available: Contiene la configuración de todos nuestros sitios web.
  • sites-enabled: Contiene solo los sitios web habilitados o disponibles.

Con está estructura es muy sencillo habilitar/deshabilitar sitios web: bastaría con crear/eliminar un enlace simbólico al DIR sites-enabled.

Configurando el NGINX como proxy reverso.

Creamos una plantilla dentro de sites-available para facilitar la creación de nuevos sitios, el contenido de la misma es:

server {
	listen 80;
	
	# Put here you domain	
	#
	server_name midominio.com;

	# Max file size useful for file uploading 
	# 
	client_max_body_size 8M;
	
	location / {	
	    # NGINX acting as reverse proxy
	    #
	    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
	    proxy_set_header X-Forwarded-Proto $scheme;
	    proxy_set_header X-Real-IP $remote_addr;
	    proxy_set_header Host $http_host;
	    #
	    # Set the backend url and port, port is optional for standard services
	    # when there is a variable as a part of proxy_pass URL a resolver is needed.
	    #
	    proxy_pass http://miurl.internal:port;
	}
}

Comentemos algunas directivas de la plantilla anterior:

  • listen: Establece la dirección IP y el puerto, o la ruta a un socket UNIX en el que el servidor aceptará solicitudes. Se pueden especificar tanto la dirección IP como el puerto, o solo la dirección o solo el puerto.
  • server_name: Establece el nombre del servidor/host virtual.
  • proxy_set_header: Permite redefinir o agregar campos al encabezado de la solicitud que se pasa al servidor proxy. El valor puede contener texto, variables y sus combinaciones.

Agregar nuevo sitio

Ejecutamos el siguiente comando

# cp -v /etc/nginx/sites-available/proxy /etc/nginx/sites-available/minuevodominio

Edite el fichero minuevodominio y ajuste las directivas server_name y proxy_pass de acuerdo a sus necesidades

Habilitar el nuevo sitio

# ln -s /etc/nginx/sites-available/minuevodominio /etc/nginx/sites-enabled/minuevodominio 

Refrescar configuraciones

# systemctl reload nginx

Deshabilitar un sitio

Ejecute el siguiente comando y luego refresque configuraciones.

# rm -v /etc/nginx/sites-enabled/minuevodominio 

YouTube video

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.