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