GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo configurar y usar NGINX como proxy inverso

¿Qué es un proxy inverso?

Un servidor proxy estándar funciona en nombre de los clientes, a menudo proporcionando privacidad o filtrando contenido. Un proxy inverso funciona en nombre de un servidor, interceptando el tráfico y enrutándolo a un servidor separado.

Hay varias razones por las que podría querer instalar un proxy inverso. Una de las principales razones es la privacidad.

Si tiene varios servidores, un proxy inverso puede ayudar a equilibrar las cargas entre los servidores y mejorar el rendimiento. Como un proxy inverso proporciona un único punto de contacto para los clientes, puede centralizar el registro y la generación de informes en varios servidores.

Nginx puede mejorar el rendimiento sirviendo contenido estático rápidamente y pasando solicitudes de contenido dinámico a los servidores Apache.

Esta guía lo ayudará a instalar y configurar un proxy inverso Nginx en su sistema.

Requisitos previos

  • Un servidor Linux con Apache, PHP y un cortafuegos
  • Acceso a un usuario root con sudo acceder
  • Línea de comandos o terminal de Linux (CtrlAlternativoT para Ubuntu, AltF2 para CentOS)
  • Administrador de paquetes (como APT)

Configuración de un proxy inverso Nginx

Paso 1:Instale Nginx desde repositorios predeterminados

Abra una ventana de terminal e ingrese lo siguiente:

sudo apt-get update

Permita que el administrador de paquetes termine de actualizar las listas de software, luego ingrese lo siguiente:

sudo apt-get install nginx

Permita que el proceso se complete.

Paso 2 (opcional):instalar Nginx desde el repositorio oficial

Añadir clave de seguridad

En una ventana de terminal, ingresa lo siguiente:

sudo wget https://nginx.org/keys/nginx_signing.key
sudo apt-key add nginx_signing.key

Esto descarga la clave de firma para Nginx, que verifica que está descargando software auténtico.

Abrir sources.list Archivo para editar

En la terminal, ingresa lo siguiente:

sudo vi /etc/apt/sources.list

Añadir fuentes de Nginx a la lista de repositorios

Ingrese las siguientes líneas en el /etc/apt/sources.list archivo que acaba de abrir:

deb https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

deb-src https://nginx.org/packages/mainline/debian/ <CODENAME> nginx

Reemplazar <CODENAME> con el nombre en clave de su distribución de Debian.

Guardar el archivo y salir .

Instalar la última versión de Nginx

Para instalar la última versión de Nginx, use los comandos:

sudo apt-get remove nginx-common
sudo apt-get update
sudo apt-get install nginx

Paso 3:Inicie Nginx y configúrelo para que se inicie al reiniciar

Para iniciar Nginx:

sudo systemctl start nginx

Para habilitar Nginx:

sudo systemctl enable nginx

Para comprobar que Nginx se está ejecutando:

sudo systemctl status nginx

El resultado debería mostrarle que el servicio está activo (en ejecución) , como en la imagen de abajo:

Paso 4:Desvincular archivo de configuración predeterminado

En la terminal, ingresa lo siguiente:

sudo unlink /etc/nginx/sites-enabled/default

Paso 5:Crear un nuevo archivo de configuración

Para crear un nuevo archivo de configuración, ingrese:

cd /etc/nginx/sites-available/
sudo vi custom_server.conf

Reemplazar custom_server con un nombre que sea significativo para ti. En el nuevo archivo, ingrese:

server {

listen 80;

location / {

proxy_pass http://my_server;

}

}

Este es un ejemplo de proxy inverso de Nginx muy básico. Nginx está configurado para escuchar todo el tráfico en el puerto 80 para todo el tráfico.

El proxy_pass El comando dirige todo el tráfico en el puerto 80 a http://my_server . Simplemente cambie http://my_server a la ubicación de su elección, y Nginx interceptará las solicitudes de los clientes y las enrutará a la ubicación que especifique. Una vez que haya terminado, guarde el archivo y salga.

Paso 6:vincular y activar el archivo de configuración

Para activar el nuevo archivo Nginx, ingrese:

ln -s /etc/nginx/sites-available/custom_server.conf 
/etc/nginx/sites-enabled/custom_server.conf

Como de costumbre, reemplace custom_server con el nombre del archivo de configuración que creó en el Paso 5.

Paso 7:Pruebe y reinicie Nginx

Para probar Nginx:

sudo service nginx configtest

Para reiniciar Nginx:

sudo service nginx restart

Opciones de configuración opcionales de Nginx

Búferes proxy

De forma predeterminada, Nginx almacena en búfer el tráfico de los servidores a los que representa. Los búferes mejoran el rendimiento del servidor ya que no se envía una respuesta del servidor hasta que el cliente termina de enviar una respuesta completa.

Para desactivar el búfer, abra el archivo de configuración del Paso 5. En ubicación/sección , agregue lo siguiente:

proxy_buffering off;

Encabezados de solicitud

Los encabezados proporcionan información al servidor sobre las solicitudes realizadas o sobre el cliente.

Nginx redefine dos de los campos de encabezado:host está configurado para $proxy_host y connection está configurado para close . Si usa esos encabezados, asegúrese de cambiar el comportamiento en el archivo de configuración.

Si alguna cadena de encabezado está vacía, Nginx simplemente elimina esos campos.

Para cambiar la forma en que Nginx maneja los brezos, use los siguientes comandos en su archivo de configuración:

location / {

proxy_set_header Host $host;

}

Este ejemplo le dice a Nginx que configure host al $host variables.

Para evitar que un campo de encabezado se pase al servidor proxy, use una cadena vacía de la siguiente manera:

location / {

proxy_set_header header-variable "";

}

Equilibrio de carga

Puede utilizar el archivo de configuración para enrutar el tráfico a varios servidores. Para usar esta configuración, su archivo de configuración se verá similar a este ejemplo:

http   {

server   {

proxy_pass http://my_server

}

}

En otras palabras, la configuración de HTTP sale de la configuración del servidor del Paso 5.

Para crear un nombre para un grupo de servidores, use el upstream comando:

http   {

upstream server_group   {

server my.server1.com weight=3;

server my.server2.com;

}

server  {

location / {

proxy_pass http://server_group;

}

}

}

Esta designación requiere dos servidores:my.server1.com y my.server2.com – y los agrupa. Nginx representa ese grupo de servidores con el nombre http://server_group . Puedes cambiarles el nombre que quieras.

Este ejemplo usa el weight comando para enrutar tres solicitudes a my.server1.com , luego 1 solicitud a my.server2.com . Esta es una opción para equilibrar manualmente la carga de clientes entre servidores. Otro método es simplemente omitir cualquier designación, en la que Nginx distribuirá las solicitudes de manera uniforme entre los servidores enumerados.


Ubuntu
  1. Cómo configurar el proxy inverso de Nginx para Kibana

  2. Cómo configurar un proxy inverso Nginx

  3. Cómo configurar Nginx como proxy inverso en Ubuntu 20.04

  4. Configurar Nginx como proxy inverso en Ubuntu 20.04 - ¿Guía paso a paso?

  5. ¿Cómo configuro curl para usar permanentemente un proxy?

Cómo configurar Nginx como proxy inverso para Apache en Debian 11

Cómo configurar el proxy inverso de Nginx

¿Cómo configurar un servidor Apt-cacher?

¿Cómo configurar el proxy inverso de Nginx en Plesk?

Cómo usar el proxy inverso Nginx (servidor cPanel/WHM)

Cómo configurar Tomcat con Nginx como proxy inverso en Ubuntu 18.04