BLOG | NGINX

Tutorial: Configuración de NGINX y NGINX Plus como servidor web y proxy inverso en AWS

NGINX - Parte de F5 - horizontal, negro, tipo RGB
Miniatura de Aidan Carson
Aidan Carson
Publicado el 12 de noviembre de 2021

Desde su introducción hace más de 15 años, NGINX ha ganado popularidad de forma constante y ahora es el servidor web más popular del mundo , impulsando más de [ngx_snippet name='number-sites'] sitios web . En este caso, creemos que es inteligente seguir a la multitud y utilizar NGINX para todas sus necesidades de servicio web , y además aprovechar sus capacidades como proxy inverso , caché de contenido , balanceador de carga , puerta de enlace API y más.

Esta publicación de blog lo guía para poner en funcionamiento NGINX en Ubuntu 20.04 en Amazon Web Services (AWS) en una configuración fácil de usar que no afecta la configuración de su computadora personal. Cubre tanto NGINX como NGINX Plus , la versión con soporte comercial con funciones adicionales de nivel empresarial.

Una vez que complete los pasos indicados aquí, puede continuar con la capacitación básica de NGINX ( con instructor o a pedido ), un curso de un día completo donde aprenderá a configurar, administrar y gestionar NGINX. Este curso también lo prepara para nuestros otros cursos con instructor y a su propio ritmo sobre temas avanzados .

El tutorial incluye instrucciones para estas tareas:

Acceder a una terminal

Para este tutorial, necesitará una terminal para conectarse a su instancia de Amazon Elastic Compute Cloud (EC2). Las Mac tienen una terminal incorporada, pero los usuarios de Windows necesitan descargar PuTTY o una herramienta equivalente. Si prefiere utilizar su propia terminal local para configurar NGINX o NGINX Plus y servir contenido web, no dude en saltar a Configuración de AWS .

Cómo acceder a una terminal en MacOS

En Mac, puedes usar la herramienta de terminal incorporada para hacer todo lo que se indica en este tutorial.

  1. Haga clic en el icono de la lupa en el extremo derecho de la barra superior de la pantalla.

  2. Escriba terminal en el cuadro emergente y presione Entrar. Se abre una ventana de terminal independiente.

Cómo acceder a una terminal en Windows

Windows no viene con una terminal incorporada, por lo que deberás descargar una de Internet. Junto con AWS, recomendamos PuTTY, un cliente ssh utilizado en todo el mundo.

  1. Acceda a la página de descarga de PUTTY .

  2. Descargue e instale el archivo en la ubicación que elija y luego ábralo. Sin embargo, no podrás acceder a la terminal real hasta que finalices los pasos de Configuración de AWS .

Configuración de AWS

En este tutorial asumimos que tiene una Amazon Virtual Private Cloud (VPC) y puede simplemente usar la configuración de VPC predeterminada que se crea con la mayoría de las cuentas. En esta sección, configurará su implementación de AWS creando una instancia EC2 y conectándose a ella.

Nota:  El siguiente procedimiento y capturas de pantalla para crear una instancia EC2 se verificaron al momento de escribir este artículo, pero están sujetos a cambios por parte de AWS. Adapte las instrucciones según sea necesario.

  1. En la página de inicio de AWS , inicie sesión en la consola (de administración de AWS) o primero cree una cuenta nueva si es necesario.

  2. Haga clic en Servicios en la barra de título de la consola y luego en EC2 en la sección Computación .

    Captura de pantalla que muestra la selección de 'EC2' en la página 'Servicios' de AWS

  3. Haga clic en el botón Iniciar instancia en la página del Panel de EC2 que se abre.

  4. En la página Paso 1 , haga clic en el botón Seleccionar en la fila Tipo de volumen SSD de Ubuntu Server 20.04 LTS (HVM) y mantenga la selección de arquitectura predeterminada de 64 bits (x86) .

    Captura de pantalla de la página 'Paso 1' del asistente de creación de instancias de Amazon EC2

  5. En la página Paso 2 , seleccione el tipo de instancia t2.micro , que al momento de escribir este artículo está marcado como elegible para nivel gratuito y seleccionado de manera predeterminada. Haga clic en Siguiente: Configurar detalles de la instancia  botón.

    Captura de pantalla de la página 'Paso 2' del asistente de creación de instancias de Amazon EC2

  6. En la página Paso 3 , asegúrese de que la VPC que desea utilizar esté seleccionada en el campo Red y que el campo Asignar IP pública automáticamente esté configurado en la configuración predeterminada Usar subred (Habilitar) o en Habilitar . Deje el resto de la configuración con sus valores predeterminados.

    Captura de pantalla de la página 'Paso 3' del asistente de creación de instancias de Amazon EC2

  7. Haga clic en 6. Configurar el grupo de seguridad en la parte superior de la página.

  8. En la página Paso 6 , realice los siguientes pasos para permitir el tráfico entrante HTTP y HTTPS (de forma predeterminada, las instancias EC2 solo aceptan tráfico SSH):

    • Haga clic en el botón Agregar regla debajo de la tabla, luego seleccione HTTP en el menú desplegable en la columna Tipo . Para los fines de este tutorial, permitimos el acceso desde cualquier dirección IP (el valor en la columna Fuente es Cualquier lugar 0.0.0.0/0, ::/0 ). Para entornos de producción, recomendamos seguir la advertencia de la página que exige el uso de grupos de seguridad para controlar el acceso.

    • Repita el paso anterior para HTTPS .

    • Haga clic en el botón Revisar y lanzar en la parte inferior de la página.

    Captura de pantalla de la página 'Paso 6' del asistente de creación de instancias de Amazon EC2

  9. En la página del Paso 7 , haga clic en el botón Iniciar en la parte inferior.

  10. En el cuadro que aparece, crea un nuevo par de claves:

    • Seleccione Crear un nuevo par de claves en el menú desplegable superior.

    • Seleccione un tipo de par de claves. En este tutorial, seleccionaremos RSA .

    • Escriba un nombre en el campo Nombre del par de claves , como NGINX_key .

    • Haga clic en el botón Descargar par de claves .

    • Como se muestra en la captura de pantalla animada a continuación, una casilla de verificación reemplaza el botón Descargar par de claves . Haga clic aquí para indicar que puede acceder a la clave privada.

    • Haga clic en el botón Iniciar instancias .

    Captura de pantalla de la ventana emergente 'Seleccionar un par de claves existente o crear un nuevo par de claves' de Amazon EC2

  11. En la utilidad de administrador de archivos, mueva el archivo .pem descargado (en el tutorial, NGINX_key.pem ) a una ubicación segura. Para el tutorial lo colocaremos en el directorio /Desktop/NGINX .

  12. Si usa una terminal de Windows, siga las instrucciones de AWS para descargar la utilidad PuTTYgen y convertir el archivo .pem en un archivo .ppk .

  13. En la página Estado de lanzamiento , haga clic en el botón Ver instancias en la parte inferior.

  14. En la página Instancias que se abre, la nueva instancia aparece en la tabla. Ponle un nombre:

    • Haga clic en el icono del lápiz en la columna Nombre .

    • Escriba el nombre en el cuadro emergente Editar nombre y haga clic en el botón Guardar .

    Captura de pantalla de la página 'Instancias' de Amazon EC2 que muestra la edición del nombre de la instancia

  15. Haga clic en el botón Conectar en la parte superior de la pantalla. Aparece una ventana como la siguiente. Abra la pestaña del cliente SSH y siga las instrucciones para conectarse a la instancia. Si usa Windows, sustituya .ppk por .pem en los comandos.

    Captura de pantalla de la ventana emergente "Conectarse a la instancia" de Amazon EC2

Instalación del software NGINX

Ahora que su entorno de AWS está configurado, es momento de instalar NGINX Open Source o NGINX Plus , que puede probar gratis durante 30 días. Ambas opciones funcionan en el contexto de este tutorial, pero si desea explorar más a fondo las funciones avanzadas de NGINX Plus , solicite una prueba gratuita.

Instalación de NGINX de código abierto

La mayoría de las distribuciones de Linux y variantes de BSD hacen que NGINX sea de código abierto disponible en sus repositorios de paquetes estándar, pero generalmente no es la última versión. Recomendamos descargar NGINX Open Source directamente desde nginx.org . Solo hay unos pocos pasos adicionales para agregar el repositorio NGINX al administrador de paquetes de Ubuntu ( apt ).

Para instalar NGINX Open Source, siga estos pasos:

  1. Accede a tu terminal.

  2. Descargue la clave de firma de NGINX:

    $ sudo wget http://nginx.org/keys/nginx_signing.key
  3. Añade la clave:

    $ sudo apt-key add nginx_signing.key
  4. Cambie el directorio a /etc/apt .

    $ cd /etc/apt
  5. Edite el archivo sources.list , agregando este texto al final:

    deb http://nginx.org/packages/ubuntu focal nginx
    deb-src http://nginx.org/packages/ubuntu focal nginx

    Nota:  La palabra clave central en cada una de estas líneas corresponde a Ubuntu 20.04. Si está utilizando una versión diferente de Ubuntu, sustituya la primera palabra de su código de lanzamiento (por ejemplo, bionic para Ubuntu 18.04).

  6. Actualice el software NGINX:

    $ sudo apt-get update
  7. Instalar NGINX:

    $ sudo apt-get install nginx
  8. Escriba Y cuando se le solicite.

  9. Iniciar NGINX:

    $ sudo systemctl start nginx.service
  10. Comprueba su estado:

    $ sudo systemctl status nginx.service
  11. Continúe abriendo su página web .

Instalación de NGINX Plus

  1. Si aún no tienes NGINX Plus, regístrate para una prueba gratuita de 30 días .

  2. Cuando reciba la notificación por correo electrónico de que su suscripción de prueba está disponible, siga las instrucciones proporcionadas para descargar su certificado de seguridad, clave privada y JWT, y luego instalar NGINX Plus.

  3. Cuando se complete la instalación y NGINX Plus esté ejecutándose, continúe con Abrir su página web .

Abrir su página web

Ahora que ha iniciado el software NGINX, eche un vistazo a la página web que NGINX y NGINX Plus sirven de manera predeterminada antes de configurarlos para entregar el contenido de su sitio. Siga estos pasos:

  1. Vaya a la pestaña Instancias en el Panel de EC2 si aún no está allí. (Una forma de hacerlo es hacer clic en Servicios en la barra de navegación superior de la consola, EC2 en la sección Computación y en Instancias en la columna de navegación de la izquierda).

  2. Desplácese hacia la derecha en la tabla hasta que pueda ver la dirección IP pública de la instancia en la columna Dirección IPv4 pública (en la captura de pantalla, es 3.22.51.xxx). Seleccione la dirección y cópiela en el búfer de pegado.

    Captura de pantalla de la página "Instancias" de Amazon EC2 que muestra el campo "Dirección IPv4 pública" para una instancia

  3. Abra una nueva pestaña del navegador y pegue la dirección en la barra de direcciones. Aparece la página predeterminada ¡Bienvenido a nginx!, que indica que NGINX está instalado y en ejecución, pero aún no configurado.

    La página de bienvenida confirma que su proxy inverso NGINX y su servidor web están en funcionamiento.

Configuración de archivos de muestra

¡Con una versión funcional de NGINX o NGINX Plus instalada, es hora de darle un buen uso! Comience configurando algunos archivos y directorios.

  1. Cambie el directorio a su directorio de inicio si aún no se encuentra allí. En las siguientes instrucciones, es /home/ubuntu .

  2. Crea un directorio llamado public_html y cámbiate a él.

  3. En el directorio public_html , cree un archivo llamado index.html y un directorio llamado application1 .

  4. En el directorio application1 , cree un archivo llamado app1.html con algún texto en él.

  5. Regrese a su directorio de inicio.

  6. Crea un directorio llamado datos .

  7. En el directorio de datos , cree un directorio llamado imágenes .

Sirviendo páginas e imágenes

Nuestro primer caso de uso para NGINX o NGINX Plus es servir páginas e imágenes a los usuarios a través de una página web.

  1. Cambie el directorio a /etc/nginx/conf.d .

  2. Cambie el nombre default.conf a default.conf.bak para evitar que NGINX o NGINX Plus lo utilicen como archivo de configuración predeterminado.

  3. Cree un archivo llamado server1.conf con esta configuración:

    servidor { raíz /home/ubuntu/public_html;
    
    ubicación /application1 { }
    
    ubicación /imágenes { 
    raíz /home/ubuntu/data; 
    }
    }

    Documentación de directivas: ubicación , raíz , servidor

  4. Cambie el directorio a ~/data/images .

  5. Busque una imagen que desee servir y cópiela al directorio ( ~/data/images ). A modo de ejemplo, el siguiente comando copia el logotipo de NGINX :

    $ curl -o NGINX-logo.png https://www.nginx.com/wp-content/uploads/2021/11/NGINX-logo-2020.png
  6. Recargar NGINX o NGINX Plus:

    $ sudo nginx -s reload
  7. En un navegador web, solicite la imagen en esta URL, donde NGINX-server es la dirección IP pública de su instancia EC2:

    https:// servidor NGINX/images /NGINX-logo.png

  8. Accede también a la aplicação y observa lo que obtienes:

    https:// servidor NGINX /application1/app1.html

Configuración de un servidor proxy

Ahora que tienes un servidor web en funcionamiento, es hora de aprender a configurarlo para enrutar el tráfico. Esta capacidad le permite pasar tráfico a otros servidores y es un paso importante hacia la configuración del equilibrio de carga. Siga estos pasos:

  1. En el directorio ~/data , cree un directorio llamado server2 .

  2. En el directorio server2 , cree un directorio llamado sampleApp .

  3. En el directorio sampleApp , cree un archivo llamado index.html que contenga algún texto.

  4. Cambie el directorio a /etc/nginx/conf.d .

  5. Cree un archivo llamado server2.conf con esta configuración:

    servidor { escuchar 8080;
    raíz /home/ubuntu/data/server2;
    }

    Documentación de directivas: listen , root , server

  6. Modifique server1.conf agregando una directiva proxy_pass en el primer bloque de ubicación , de la siguiente manera:

    servidor { raíz /home/ubuntu/public_html;
    
    ubicación /application1 {
    contraseña_de_proxy http://localhost:8080/sampleApp;
    }
    
    ubicación /imágenes {
    raíz /home/ubuntu/data;
    }
    }

    Documentación de directivas: ubicación , proxy_pass , raíz , servidor

  7. Recargar NGINX o NGINX Plus:

    $ sudo nginx -s reload
  8. Accede a la siguiente URL en tu navegador y observa qué ha cambiado en comparación con cuando accediste a ella en Serving Pages and Images :

    https:// servidor NGINX/ application1/index.html

¡Así que eso es todo! Ahora tienes una instancia de Ubuntu en funcionamiento que ejecuta NGINX y está lista para ejecutarse como servidor proxy.

Para obtener instrucciones sobre cómo implementar NGINX y NGINX Plus en AWS para casos de uso adicionales, consulte nuestras guías de implementación .

CONCLUSIÓN

En este tutorial, aprendió a configurar NGINX o NGINX Plus para servir archivos e imágenes a través de Internet y actuar como un proxy inverso. Si desea aprender sobre NGINX con más profundidad, ofrecemos el curso de capacitación NGINX Core ( dirigido por un instructor o a pedido ) que cubre los temas de este tutorial, así como los aspectos más esenciales del servicio web y la entrega de aplicação , incluido el equilibrio de carga, el enrutamiento basado en la ubicación y la seguridad. Consulte también la documentación en nginx.org y la Guía de administración de NGINX Plus : salvo que se indique lo contrario, los artículos se aplican tanto a NGINX Open Source como a NGINX Plus.


"Esta publicación de blog puede hacer referencia a productos que ya no están disponibles o que ya no reciben soporte. Para obtener la información más actualizada sobre los productos y soluciones F5 NGINX disponibles, explore nuestra familia de productos NGINX . NGINX ahora es parte de F5. Todos los enlaces anteriores de NGINX.com redirigirán a contenido similar de NGINX en F5.com.