Este tutorial le mostrará lo fácil que es instalar Nginx en un sistema Ubuntu.
Nginx es uno de los servidores web más utilizados del mundo. Se ha convertido en la columna vertebral de algunos de los sitios web más grandes del mundo, incluidos Netflix, WordPress.org, etc. De hecho, incluso usamos Nginx para ejecutar nuestro propio sitio web.
Nginx ha demostrado ser uno de los servidores web más rápidos y ligeros. Este rendimiento se debe en parte a su enfoque asincrónico basado en eventos para procesar solicitudes. Esto difiere del antiguo comportamiento de Apache que usaba subprocesos para manejar solicitudes.
Además de actuar como servidor web, también puede funcionar como proxy inverso, equilibrador de carga, proxy de correo o incluso como caché HTTP. Sin embargo, solo cubriremos el uso de Nginx como servidor web.
En esta guía, le mostraremos cómo configurar Nginx en su servidor Ubuntu. También verá cómo configurar un bloque de servidor Nginx para su sitio web.
Dado que Nginx está disponible en el repositorio de paquetes de Ubuntu, este tutorial debería funcionar en casi todas las versiones de Ubuntu, incluidas Ubuntu 20.04 y Ubuntu 18.04.
Instalar Nginx en Ubuntu
La instalación de Nginx en Ubuntu es un proceso sencillo, ya que está disponible a través del repositorio de paquetes de Ubuntu.
Esto significa que podemos usar el administrador de paquetes apt para instalar Nginx con un solo comando. Por supuesto, el único inconveniente es que las versiones anteriores de Ubuntu pueden usar versiones obsoletas de Ubuntu.
1. Antes de instalar un paquete usando apt, necesitamos actualizar el índice del paquete.
Si no actualiza el índice del paquete, apt puede descargar una versión anterior o intentar descargarla desde un espejo que no está disponible actualmente.
Actualice el índice de su paquete local ejecutando el siguiente comando en su dispositivo Ubuntu.
2. Una vez que se complete la actualización, puede instalar de forma segura Nginx en Ubuntu.
Instalar Nginx es tan fácil como ejecutar el siguiente comando en su sistema.
3. Una vez que se complete el proceso de instalación, Ubuntu iniciará automáticamente el servidor web Nginx.
Si visita la dirección IP de su servidor, será recibido por la página web predeterminada de Nginx. Esto le indica que Nginx ahora se está ejecutando correctamente en su sistema Ubuntu.
Si no puede acceder a su instalación de Ubuntu Nginx, es probable que haya configurado un firewall en el dispositivo que está bloqueando las conexiones.
De hecho, si no ha configurado un firewall en su servidor Ubuntu, esto es definitivamente algo que debe considerar. Es una de las mejores formas de proteger su dispositivo de ataques externos.
Autorizar Nginx a través del firewall de Ubuntu
Ubuntu viene con un firewall incorporado llamado UFW. UFW es un firewall increíblemente simple de configurar y algo que debe usar para ayudar a proteger su dispositivo Ubuntu.
En esta sección veremos cómo autorizar Nginx a través de UFW para que puedas acceder a él fuera de tu servidor.
Si nunca antes ha usado UFW, asegúrese de consultar nuestra guía sobre cómo configurar reglas de firewall para UFW.
1. Una de las ventajas de usar UFW es que las aplicaciones pueden registrar sus propios perfiles para UFW.
Estos perfiles proporcionan una lista de puertos y protocolos que la aplicación necesita para funcionar.
Nginx, en particular, nos proporciona tres perfiles diferentes que podemos usar para incluirlo fácilmente en la lista blanca en UFW.
Nginx completo: El uso de este perfil permitirá el acceso a través de ambos puerto 80 y puerto 443.
Este perfil equivale a utilizar los dos puertos siguientes. Por lo general, solo debe activar lo que planea usar.
HTTP Nginx: El perfil HTTP de Nginx permite el acceso solo a través del puerto HTTP estándar.
El puerto predeterminado para las conexiones HTTP es puerto 80. HTTP se utiliza para el tráfico web no cifrado.
HTTPS Nginx: El último perfil le permite incluir fácilmente en la lista blanca el puerto HTTPS predeterminado.
Este puerto es 443 y se usa para manejar tráfico web encriptado a Nginx.
En la mayoría de los casos, terminará queriendo habilitar los puertos HTTP y HTTPS, incluso si solo desea utilizar tráfico web cifrado.
La razón es que vas a escribir tu archivo Nginx para redirigir a cualquier persona que llegue al punto HTTP de tu sitio web a HTTPS.
2. Como esta guía solo cubrirá la creación del bloque Nginx más básico, solo necesitará habilitar el soporte HTTP.
Puede permitir el acceso HTTP a través de UFW utilizando «ufw allow» seguido del nombre de perfil «Nginx HTTP».
3. Puede verificar que el puerto HTTP de Nginx ahora esté permitido en su dispositivo Ubuntu usando el siguiente comando.
En la lista producida por este comando, ahora debería ver «Nginx Http», lo que indica que puerto 80 ahora está abierto en su dispositivo Ubuntu.
Configurando su primer bloque de servidor Nginx
Nginx usa algo llamado bloques de servidor para ayudar a definir los detalles de configuración de los hosts individuales.
Al utilizar estos bloques de servidor, puede alojar fácilmente varios sitios web en un solo servidor y aún así tener la capacidad de configurar cada uno de esos sitios exactamente como debe ser.
Esta sección le mostrará cómo escribir su propio bloque Nginx para un nombre de dominio específico. Nginx usa un nombre de dominio para separar un bloque de servidor de otro.
Crear un directorio para su contenido web
Antes de comenzar, deberá configurar un directorio para almacenar todo el contenido que desea transmitir a través del servidor web Nginx.
1. Si aún no tiene un nombre de dominio, puede obtener uno relativamente barato de un proveedor como Namecheap.
Una vez que tenga un nombre de dominio a mano, deberá configurar el nombre de dominio para que apunte a la dirección IP de su servidor Ubuntu. Puede usar un CNAME o un A Name
2. Con un nombre de dominio en la mano, creemos un directorio para almacenar todos los archivos que planeamos servir.
Al instalar Nginx en Ubuntu, automáticamente servirá archivos del directorio «/ var / www / html /». Por supuesto, usarlo no es lo mejor cuando se trata de varios sitios web, por lo que usaremos una estructura ligeramente diferente.
Seguiremos usando el directorio «/ var / www /» pero crearemos un subdirectorio para nuestro nuevo bloque de servidor.
Cada nuevo directorio utilizará «DOMAIN_NAME» como raíz. Así, todo el contenido de este sitio web se almacena en su subdirectorio “html”.
Puede usar el siguiente comando en su dispositivo Ubuntu para crear estos directorios. Usamos la etiqueta «-p» para crear todas las carpetas principales necesarias.
Asegúrese de que cuando use este comando, reemplace «DOMAIN_NAME» con el nombre de dominio que está usando. Esto facilitará la identificación de los archivos que pertenecen a estas carpetas.
Por ejemplo, si configuramos esto para nuestro sitio web, terminaríamos con una carpeta como la siguiente.
Creando su primer archivo HTML
Ahora que hemos creado una carpeta para almacenar todo nuestro contenido web, creemos un pequeño archivo HTML de muestra para que lo sirva Nginx.
1. Usaremos el editor de texto nano para crear este archivo, ya que consideramos que es uno de los más fáciles de usar.
Al llamar a este archivo «index.html», Nginx lo servirá automáticamente cuando alguien acceda a su servidor a través de su nombre de dominio.
Asegúrese de reemplazar «DOMAIN_NAME» con el mismo nombre de dominio que utilizó al crear el directorio.
2. Ahora que debería estar en el editor de texto, podemos escribir algunos Código HTML básico que nos ayudará a decirnos cuando hemos configurado correctamente nuestro bloque de servidor.
3. Una vez que haya ingresado el código HTML, puede guardar el archivo presionando CTRL + X, luego Y, seguido de la tecla ENTER.
Creando un bloque de servidor para Nginx
Ahora finalmente llegamos al punto importante, que es cómo crear un bloque de servidor Nginx. Como mencionamos brevemente anteriormente, estos bloques nos permiten configurar Nginx para nuestros sitios web.
1. Comencemos creando el archivo de configuración que almacenaremos en nuestro bloque de servidor Nginx. Nombraremos este archivo de configuración después del nombre de dominio para el que lo estamos configurando.
Para Nginx, necesita estas configuraciones de sitio web en la carpeta «/ etc / nginx / sites-available».
2. En este archivo deberá ingresar las siguientes líneas.
Estas líneas configuran un bloque de servidor Nginx básico disponible a través del puerto 80 (http) sobre IPv4 e IPv6.
Usamos la variable «server_name» para definir qué nombre de dominio Nginx debe asociar con este bloque. Cuando Nginx recibe el nombre de dominio especificado, lo enruta a través de esta caída de configuración.
La siguiente parte importante es la variable «raíz». Esta variable nos permite especificar desde dónde queremos que Nginx sirva archivos. En nuestro caso, esto se establecerá en el directorio que creamos anteriormente en esta guía.
La última parte importante de este archivo es el bloque «ubicación». Con este bloque, le decimos a Nginx que use la solicitud para ver si existe un archivo coincidente en nuestro directorio. Si el archivo existe, lo servirá. De lo contrario, responderá con un error 404.
3. Una vez hecho esto, puede guardar y salir presionando CTRL + X, luego Y, seguido de la tecla ENTER.
4. Antes de que Nginx sepa que existe nuestra nueva configuración, debemos vincularnos simbólicamente al archivo en el directorio «/ etc / nginx / sites-enabled /».
Crear un enlace simbólico y no solo almacenar la configuración en esta carpeta nos permite desactivar la configuración sin borrar ni mover la configuración en sí.
Podemos crear este enlace ejecutando el siguiente comando en su dispositivo Ubuntu.
Usando «-s» con el comando ln, le decimos que cree un enlace simbólico.
Se puede pensar en un enlace simbólico como un acceso directo a nuestro bloque de servidor Nginx. Entonces, si eliminamos este enlace, no eliminaremos el archivo real.
5. Después de realizar cualquier cambio en la configuración de Nginx, aún debe ejecutar una prueba. Esta prueba lo ayudará a descubrir si cometió un error en alguna parte y evitará que desconecte su servidor web.
Puede pedirle a Nginx que pruebe su configuración usando el siguiente comando.
A continuación se muestra el mensaje que debería ver si ha configurado correctamente su nuevo bloque de servidor Nginx.
6. Nuestro último paso es reiniciar el servicio Nginx que se ejecuta en nuestro dispositivo Ubuntu.
Al reiniciar Nginx, nos aseguramos de que se lea en el bloque del servidor que acabamos de crear.
7. Si todo salió bien, ahora puede acceder a su sitio web a través de su nombre de dominio especificado
Si está accediendo a su nombre de dominio, debería ser recibido con una pantalla como la siguiente.
Asegúrese de que cuando acceda a su nombre de dominio esté utilizando un protocolo HTTP como este, «http: //NOMBRE DE DOMINIOLa configuración de HTTPS requiere algunos pasos más que cubriremos en otra guía.
Archivos y directorios importantes para Nginx
En este punto, ahora debería tener una idea básica de cómo instalar y configurar un sitio web muy básico usando Nginx en su dispositivo Ubuntu.
Para usar mejor Nginx en su sistema Ubuntu, necesita recordar algunos directorios y archivos. Estos directorios son esenciales para configurar y aprovechar al máximo el servidor web.
/ etc / nginx /: esta carpeta es donde Nginx guarda todos sus archivos de configuración por defecto.
Puede modificar los archivos ubicados en este directorio para cambiar el comportamiento de su servidor web.
/etc/nginx/nginx.conf: este archivo es el punto de entrada principal para Nginx. El servidor web comenzará a leer todas sus configuraciones desde este punto.
Los archivos como los bloques del servidor de su sitio web generalmente se incluyen en este archivo.
/etc/nginx/conf.d/: todos los archivos guardados en este directorio se incluirán en la configuración predeterminada de Nginx.
Puede utilizar este directorio para modificar el comportamiento de Nginx sin tener que modificar los archivos de configuración básicos.
/ etc / nginx / sites-available /: este directorio es donde debe almacenar sus bloques de servidor Nginx. Aunque Nginx no carga estos archivos automáticamente, puede pensar en ellos como una especie de área de prueba.
Una vez que su bloque de servidor esté listo, debe vincular simbólicamente desde este archivo al directorio «/ etc / nginx / sites-enabled /».
/ etc / nginx / sites-enabled /: este es uno de los últimos directorios importantes para Nginx con respecto a su configuración. Cualquier bloque de servidor guardado aquí se incluirá cuando se reinicie el servidor web.
Por lo general, debe almacenar sus archivos de configuración en el directorio «/ etc / nginx / sites-available /» y crear un enlace simbólico en ese directorio.
Puede desactivar fácilmente un sitio web eliminando el enlace simbólico y no el archivo de configuración real.
/ var / log / nginx /: este directorio es la ubicación predeterminada donde encontrará todos los archivos de registro de Nginx en Ubuntu.
Es posible cambiar la ubicación de estos archivos de registro dentro de un bloque de servidor. Incluso puede elegir un nombre personalizado para que los registros estén separados para cada sitio web que ejecute.
/var/log/nginx/error.log: si tiene errores con la instalación de Ubuntu Nginx, este es el primer lugar que debe verificar. Cualquier error que ocurra se registrará en este archivo. Esto incluirá errores tanto de Nginx como de PHP ./var/log/nginx/access.log: cuando un usuario recibe contenido de su servidor web Nginx, crea una entrada en este archivo.
De forma predeterminada, cada entrada en este registro le informará de la ruta que el usuario intentó acceder, su dirección IP y mucha otra información. Es posible modificar lo que se guarda tanto en la configuración principal de Nginx como en un bloque de servidor.
Controlar el servicio Nginx en Ubuntu
Lo último que cubriremos es cómo controlar el servicio Nginx en su sistema Ubuntu.
Saber cómo administrar el servicio puede ser útil, especialmente cuando desea desconectar su sitio web por algún motivo o necesita reiniciarlo para borrar la configuración.
Controlar el servicio Nginx es increíblemente fácil porque podemos usar systemctl.
Iniciar el servidor web Nginx
Para iniciar el servidor web Nginx, debe ejecutar el siguiente comando en su dispositivo Ubuntu.
Si el servicio ya se está ejecutando, este comando no hará nada.
Detener Nginx
Detener Nginx en Ubuntu es tan fácil como iniciarlo. Todo lo que tenemos que hacer es hacer referencia al comando de parada y al nombre del servicio nginx.
Al igual que al iniciar Nginx, si Nginx ya se ha detenido, este comando no hará nada.
Reiniciar el servicio Nginx
Reiniciar Nginx puede ser útil cuando tiene problemas o ha realizado cambios de configuración que no surten efecto en una recarga.
Este proceso es el equivalente aproximado de detener el servicio y luego reiniciarlo inmediatamente.
Recargar Nginx su configuración
Nginx puede recargar sus archivos de configuración sin tener que cerrarse por completo. Forzar una recarga en lugar de un reinicio permite que el servidor web mantenga sus conexiones actuales.
Asegúrese de probar sus archivos Nginx usando la opción -t. Si se carga una configuración no válida durante el proceso de recarga, Nginx estará fuera de línea.
Deshabilite el servidor web Nginx en Ubuntu
Cuando instale Nginx en su sistema Ubuntu, se configurará automáticamente para iniciarse en el arranque. Si prefiere que esto no suceda, puede usar systemctl para deshabilitar el servicio.
Con el servicio Nginx desactivado, aún es posible iniciarlo y detenerlo manualmente. La única diferencia es que el Administrador de servicios del sistema no lo iniciará y administrará automáticamente.
Activación del servicio Nginx
Si ha desactivado el servidor web Nginx, es posible reactivarlo con el siguiente comando simple.
Una vez que haya habilitado el servicio Nginx, se iniciará automáticamente cuando se inicie su servidor Ubuntu. Además, si el servicio Nginx muere por algún motivo, intentará reiniciarlo.
Conclusión
Espero que ahora comprenda cómo instalar y configurar el servidor web Nginx en su dispositivo Ubuntu.
Hemos cubierto algunos temas a lo largo de esta guía, comenzando con la instalación del servidor web. También debe saber cómo crear y configurar su propio bloque de servidor Nginx.
Los bloques de servidor son un componente crucial de Nginx y mantienen separados varios sitios web. También se puede utilizar para configurar Nginx de manera diferente para cada uno de sus sitios.
Si ha tenido problemas para instalar y ejecutar Nginx en su dispositivo Ubuntu, no dude en dejar un comentario a continuación.
Asegúrese de consultar algunos de nuestros otros tutoriales de Ubuntu, como configurar una dirección IP estática o usar actualizaciones desatendidas.