Tutorial

¿Cómo instalar Nginx en Ubuntu 16.04?

Published on December 12, 2016
Español
¿Cómo instalar Nginx en Ubuntu 16.04?

Introducción

Nginx es uno de los servidores web más populares del mundo y es responsable de alojar algunos de los sitios más grandes y de mayor tráfico en Internet. Es más fácil de usar que Apache en la mayoría de los casos y puede usarse como un servidor web o un proxy inverso.

En esta guía, vamos a discutir cómo obtener Nginx instalado en su servidor Ubuntu 16.04.

Requisitos Previos

Antes de comenzar con esta guía, debe tener una cuenta de usuario independiente que no sea root, con privilegios de sudo configurado en su servidor. Puede aprender a configurar una cuenta de usuario normal siguiendo nuestra guía de configuración inicial del servidor para Ubuntu 16.04.

Cuando tenga una cuenta disponible, inicie sesión como usuario no root para comenzar.

Paso 1 — Instalar Nginx

Nginx está disponible en los repositorios predeterminados de Ubuntu, por lo que la instalación es bastante sencilla.

Dado que esta es nuestra primera interacción con el sistema de paquetes apt en esta sesión, actualizaremos nuestro índice de paquetes local para que tengamos acceso a los listados de paquetes más recientes. Posteriormente, podemos instalar nginx:

  1. sudo apt-get update
  2. sudo apt-get install nginx

Después de aceptar el procedimiento, apt-get instalará Nginx y cualquier dependencia requerida a su servidor.

Paso 2 — Ajuste el Firewall

Antes de poder probar Nginx, necesitamos reconfigurar nuestro software de firewall para permitir el acceso al servicio. Nginx se registra como un servicio con ufw, nuestro cortafuegos, al instalarse. Esto hace bastante fácil permitir el acceso de Nginx.

Podemos enumerar las configuraciones de las aplicaciones con las que ufw sabe cómo trabajar escribiendo:

  1. sudo ufw app list

Debe obtener una lista de los perfiles de aplicación:

Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

Como puede ver, hay tres perfiles disponibles para Nginx:

  • Nginx Full: Este perfil abre tanto el puerto 80 (tráfico web normal, sin cifrar) como el puerto 443 (tráfico cifrado TLS / SSL)
  • Nginx HTTP: Este perfil abre sólo el puerto 80 (normal, tráfico web no cifrado)
  • Nginx HTTPS: Este perfil abre sólo el puerto 443 (tráfico cifrado TLS / SSL)

Se recomienda activar el perfil más restrictivo que permita el tráfico que haya configurado. Dado que aún no hemos configurado SSL para nuestro servidor, en esta guía, sólo necesitaremos permitir tráfico en el puerto 80.

Puede habilitarlo escribiendo:

  1. sudo ufw allow 'Nginx HTTP'

Puede verificar el cambio escribiendo:

  1. sudo ufw status

Debe ver el tráfico HTTP permitido en la salida mostrada:

Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

Paso 3 — Compruebe su Servidor Web

Al final del proceso de instalación, Ubuntu 16.04 inicia Nginx. El servidor web ya debería estar activo.

Podemos comprobar con el sistema init systemd para asegurarse de que el servicio se está ejecutando escribiendo:

  1. systemctl status nginx
Output
● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: active (running) since Mon 2016-04-18 16:14:00 EDT; 4min 2s ago Main PID: 12857 (nginx) CGroup: /system.slice/nginx.service ├─12857 nginx: master process /usr/sbin/nginx -g daemon on; master_process on └─12858 nginx: worker process

Como se puede ver anteriormente, el servicio parece haber comenzado correctamente. Sin embargo, la mejor manera de probar esto es realmente solicitar una página de Nginx.

Puede acceder a la página de destino predeterminada de Nginx para confirmar que el software se está ejecutando correctamente. Puede acceder a esto a través del nombre de dominio o la dirección IP de su servidor.

Si no tiene configurado un nombre de dominio para su servidor, puede aprender cómo configurar un dominio con DigitalOcean aquí.

Si no desea configurar un nombre de dominio para su servidor, puede utilizar la dirección IP pública de su servidor. Si no conoce la dirección IP de su servidor, puede obtenerla de diferentes maneras desde la línea de comandos.

Intente escribir esto en la linea de comandos de su servidor:

  1. ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Esto le regresará algunas líneas. Puede probar cada uno en su navegador web para ver si funcionan.

Una alternativa es escribir esto, que debe darle su dirección IP pública como se ve desde otra ubicación en Internet:

  1. sudo apt-get install curl
  2. curl -4 icanhazip.com

Cuando tenga la dirección IP o el dominio de su servidor, introdúzcalo en la barra de direcciones de su navegador:

http://dominio_del_servidor_o_IP

Debería ver la página de destino predeterminada de Nginx, que debería ser similar a la siguiente:

Página predeterminada de Nginx

Esta página se incluye simplemente con Nginx para mostrarle que el servidor se está ejecutando correctamente.

Paso 4 — Administrar el Proceso de Nginx

Ahora que tiene su servidor web en funcionamiento, podemos repasar algunos comandos básicos de administración.

Para detener su servidor web, puede escribir:

  1. sudo systemctl stop nginx

Para iniciar el servidor web cuando está detenido, escriba:

  1. sudo systemctl start nginx

Para detener e iniciar de nuevo el servicio, escriba:

  1. sudo systemctl restart nginx

Si simplemente está realizando cambios de configuración, Nginx puede recargar a menudo sin abandonar las conexiones. Para ello, se puede utilizar este comando:

  1. sudo systemctl reload nginx

De forma predeterminada, Nginx está configurado para iniciarse automáticamente cuando se inicia el servidor. Si esto no es lo que desea, puede desactivar este comportamiento escribiendo:

  1. sudo systemctl disable nginx

Para volver a habilitar el servicio para arrancar al arrancar, puede escribir:

  1. sudo systemctl disable nginx

Paso 5 — Familiarizarse con Archivos y Directorios Importantes de Nginx

Ahora que sabe cómo administrar el servicio en sí, debe tomar unos minutos para familiarizarse con algunos directorios y archivos importantes.

Contenido

  • /var/www/html: El contenido web real, que por defecto solo consiste en la página predeterminada de Nginx que viste anteriormente, se sirve fuera del directorio /var/www/html. Esto se puede cambiar alterando los archivos de configuración de Nginx.

Configuración del Servidor

  • /etc/nginx/nginx.conf: El directorio de configuración de nginx. Todos los archivos de configuración de Nginx residen aquí.
  • /etc/nginx/nginx.conf: El archivo de configuración principal de Nginx. Esto se puede modificar para realizar cambios en la configuración global de Nginx.
  • /etc/nginx/sites-available: El directorio donde se pueden almacenar los “bloques de servidor” por sitio. Nginx no utilizará los archivos de configuración que se encuentren en este directorio a menos que estén vinculados al directorio sites-enabled (ver abajo). Normalmente, toda la configuración del bloque del servidor se realiza en este directorio y se habilita mediante la vinculación al otro directorio.
  • /etc/nginx/sites-enabled/: Se almacena el directorio donde están habilitados los “bloques de servidor” por sitio. Por lo general, estos se crean mediante la vinculación a los archivos de configuración que se encuentran en el directorio sites-available.
  • /etc/nginx/snippets: Este directorio contiene fragmentos de configuración que se pueden incluir en cualquier otro lugar de la configuración de Nginx. Los segmentos de configuración potencialmente repetibles son buenos candidatos para la refactorización en fragmentos.

Registros del Servidor

  • /var/log/nginx/access.log: Cada solicitud a su servidor web se registra en este archivo de registro a menos que Nginx esté configurado para hacerlo de otra manera.
  • /var/log/nginx/error.log: Cualquier error Nginx se registrará en este registro.

Conclusión

Ahora que tiene instalado su servidor web, tiene muchas opciones para el tipo de contenido que se va a servir y las tecnologías que desea utilizar para crear una experiencia más rica.

Aprenda cómo utilizar los bloques del servidor Nginx aquí. Si desea crear una pila de aplicaciones más completa, consulte este artículo sobre cómo configurar una pila LEMP en Ubuntu 16.04.

Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.

Learn more about us


About the authors

Default avatar
TonnyORG

translator


Still looking for an answer?

Ask a questionSearch for more help

Was this helpful?
 
2 Comments


This textbox defaults to using Markdown to format your answer.

You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!

Hola, a mi me aparece inactivo:

● nginx.service - A high performance web server and a reverse proxy server Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled) Active: failed (Result: exit-code) since Fri 2018-06-15 12:58:53 UTC; 46min ago Main PID: 7564 (code=exited, status=0/SUCCESS)

Jun 15 12:58:53 ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Starting A high performance web server and a reverse proxy server… Jun 15 12:58:53 ubuntu-s-1vcpu-1gb-nyc1-01 nginx[7959]: nginx: [emerg] a duplicate default server for 0.0.0.0:80 in /etc/nginx/sites-en Jun 15 12:58:53 ubuntu-s-1vcpu-1gb-nyc1-01 nginx[7959]: nginx: configuration file /etc/nginx/nginx.conf test failed Jun 15 12:58:53 ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: nginx.service: Control process exited, code=exited status=1 Jun 15 12:58:53 ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: Failed to start A high performance web server and a reverse proxy server. Jun 15 12:58:53 ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: nginx.service: Unit entered failed state. Jun 15 12:58:53 ubuntu-s-1vcpu-1gb-nyc1-01 systemd[1]: nginx.service: Failed with result ‘exit-code’.

Alguien puede ayudarme? Gracias!.

Hi, there is a mistake in the last instruction of part 4. It’s a small mistake.

The instruction should be “sudo systemctl enable nginx” instead of “disable”.

Thank you very much for the tutorial. It is very usefull !

Try DigitalOcean for free

Click below to sign up and get $200 of credit to try our products over 60 days!

Sign up

Join the Tech Talk
Success! Thank you! Please check your email for further details.

Please complete your information!

Get our biweekly newsletter

Sign up for Infrastructure as a Newsletter.

Hollie's Hub for Good

Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.

Become a contributor

Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.

Welcome to the developer cloud

DigitalOcean makes it simple to launch in the cloud and scale up as you grow — whether you're running one virtual machine or ten thousand.

Learn more
DigitalOcean Cloud Control Panel