Nginx es uno de los servidores web más populares del mundo y aloja algunos de los sitios más grandes y con mayor tráfico en Internet. Es más fácil de utilizar que Apache en la mayoría de los casos y puede emplearse como servidor web o proxy inverso.
En esta guía, explicaremos la manera de instalar Nginx en su servidor de Ubuntu 18.04. Para acceder a una versión más detallada de este tutorial, consulte Cómo instalar Nginx en Ubuntu 18.04.
Antes de comenzar a usar esta guía, debería contar con lo siguiente:
Cuando disponga de una cuenta, inicie sesión como usuario no root para comenzar.
Debido aq ue Nginx está disponible en los repositorios predeterminados de Ubuntu, puede instalarlo utilizando el sistema de paquetes apt
.
Actualice su índice local de paquetes:
- sudo apt update
Instale Nginx:
- sudo apt install nginx
Si siguió el tutorial de configuración del servidor de los requisitos previos, tendrá habilitado el firewall UFW. Compruebe los perfiles de aplicaciones ufw
disponibles con el siguiente comando:
- sudo ufw app list
OutputAvailable applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH
Habilitaremos el perfil más restrictivo, el cual de todas formas permitirá el tráfico que configuró y con ello el tráfico en el puerto 80
:
- sudo ufw allow 'Nginx HTTP'
Verifique el cambio:
- sudo ufw status
OutputStatus: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
Realice una verificación con el sistema init systemd
para saber si se encuentra en ejecución el servicio escribiendo lo siguiente:
- 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 Fri 2018-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process
A través su dirección IP, acceda a la página de destino predeterminada de Nginx para confirmar que el software funcione de forma correcta:
http://your_server_ip
Debería ver la página de destino predeterminada de Nginx:
Al emplear el servidor web Nginx, puede utilizar _bloques de servidor _(similares a hosts virtuales de Apache) para encapsular detalles de configuración y alojar más de un dominio desde un único servidor. Configuraremos un dominio llamado example.com, pero debería cambiarlo por su propio nombre de dominio. Consulte nuestra Introducción a DNS de DigitalOcean para hallar más información sobre la configuración de un nombre de dominio con DigitalOcean.
Cree el directorio para example.com
, utilizando el indicador -p
para crear cualquier directorio principal necesario:
- sudo mkdir -p /var/www/example.com/html
Asigne la propiedad del directorio:
- sudo chown -R $USER:$USER /var/www/example.com/html
Los permisos de sus root web deberían ser correctos si no modificó su valor umask
, pero puede comprobarlo escribiendo lo siguiente:
- sudo chmod -R 755 /var/www/example.com
Cree una página de ejemplo index.html
utilizando nano
o su editor favorito:
- nano /var/www/example.com/html/index.html
Dentro de ella, agregue el siguiente ejemplo de HTML:
<html>
<head>
<title>Welcome to Example.com!</title>
</head>
<body>
<h1>Success! The example.com server block is working!</h1>
</body>
</html>
Guarde y cierre el archivo cuando termine.
Cree un nuevo bloque de servidor en /etc/nginx/sites-available/example.com
:
- sudo nano /etc/nginx/sites-available/example.com
Péguelo en el siguiente bloque de configuración, actualizado para nuestro nuevo directorio y nombre de dominio:
server {
listen 80;
listen [::]:80;
root /var/www/example.com/html;
index index.html index.htm index.nginx-debian.html;
server_name example.com www.example.com;
location / {
try_files $uri $uri/ =404;
}
}
Guarde y cierre el archivo cuando termine.
Habilite el archivo creando un enlace entre él y el directorio sites-enabled
:
- sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
Con esto, quedarán habilitados y configurados dos bloques de servidor para responder a solicitudes según sus directivas listen
y server_name
:
example.com
: responderá a solicitudes de example.com
y www.example.com
.default
: responderá a cualquier solicitud en el puerto 80
que no coincida con los otros dos bloques.Para evitar un posible problema problema de memoria de depósito hash que pueda surgir al agregar nombres de servidor adicionales, es necesario ajustar un valor en el archivo /etc/nginx/nginx.conf
. Abra el archivo:
- sudo nano /etc/nginx/nginx.conf
Encuentre la directiva server_names_hash_bucket_size
y elimine el símbolo #
para eliminar el comentario de la línea:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
Realice una prueba en busca de errores de sintaxis:
- sudo nginx -t
Reinicie Nginx para habilitar sus cambios:
- sudo systemctl restart nginx
Con esto, Nginx debería proporcionar su nombre de dominio. Puede probar esto visitando http://example.com
. Allí, debería ver algo como lo siguiente:
Una vez instalado su servidor web, tiene muchas opciones respecto del tipo de contenido que ofrecerá y de las tecnologías que desee usar para crear una experiencia más completa.
Si desea compilar una pila de aplicaciones más completa, consulte este artículo sobre cómo configurar una pila LEMP en Ubuntu 18.04.
Thanks for learning with the DigitalOcean Community. Check out our offerings for compute, storage, networking, and managed databases.
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!
Sign up for Infrastructure as a Newsletter.
Working on improving health and education, reducing inequality, and spurring economic growth? We'd like to help.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.