Instalar servidor NGINX, y configurar virtual host en Ubuntu 18.04

Entre la variedad de seServidor web nginx en ubuntu 18.04rvidores web para linux, el más habitual suele ser Apache. Pero hay uno que esta comiendole terreno. Este es NGINX.

Instalación del servidor web NGINX

Para instalar este servidor en un Ubuntu 18.04 es facil, solo tenemos que tirar de repositorio y lo tendremos instalado sin ningun problema.

sudo apt-get update
sudo apt-get install nginx

En cuanto termine, ya tendremos instalado nuestro servidor web en nuestro sistema bajo Ubuntu 18.04

Abrir los puertos en el firewall del Ubuntu 18.04

Una de las opciones que nos agrega la instalación de nginx, es añadir los diferentes modos de funcional el servidor web, al firewall que trae por defecto la distribución de Ubuntu.

sudo ufw app list

Para activar los puertos de nginx en el firewall solo tendremos que utilizar el nombre del metodo que deseamos activar.

Para el modo de «http», le indicamos a firewall que queremos usar el metodo «Nginx HTTP». Con esta opción abriremos el puerto 80 en el firewall.

sudo ufw allow 'Nginx HTTP'

Para activar el modo HTTPS, y abrir el puerto 443 para la conexión seguras, utilizaremos la opción ‘Nginx HTTPS’

sudo ufw allow 'Nginx HTTPS'

Configurar un virtual host en el nginx

La configuración de los virtual host en el servidor nginx, es muy parecida a la que utilizamos en el servidor apache. en el directorio de nginx (/etc/nginx), tenemos las mismas carpetas que encontramos en el apache (sites-avaliable, sites-enabled, modules-available, modules-enabled, etc). La unica diferencia que encontramos con respecto Apache, es que los enlace simbolicos, que en apache los creamos con a2ensite o a2dissite, etc. En el caso de nginx los tendremos que crear manualmente.

sudo ln -s /etc/nginx/sites-available/virtualhost.conf /etc/nginx/sites/enabled/

Crear el fichero de configuración del virtualhost

En la carpeta de /etc/nignx/sites-available/ tenemos un fichero con la configuración por defecto del servidor. Podemos usar este fichero como plantilla para nuestros virtual host.

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/virtualhost1.conf

Editamos el fichero que hemos creado, para personalizar la configuración de nuestro virtual host.

sudo nano /etc/nginx/sites-available/virtualhost1.conf

Una de las primeras lineas que nos encotramos son las siguientes

listen 80 default_server;
listen [::]:80 default_server;

Lo primero que deberemos de hacer es eliminar «default_server»,  de las dos lineas. A no ser que queramos que este virtual host que estamos configurando sea el servidor por defecto. En ese caso tendremos que, o eliminar el enlace simbolico de «default» dentro de la carpeta de los sites activados (/etc/nginx/sites/enabled/). O eliminar esa opción del fichero «default». Tener dos host configurados como servidor por defecto da un conflicto en el servidor web.

El siguiente parametro que tendremos que modificar es la linea

root /var/www/html;

Estableciendo la ruta donde queremos que apunte nuestro virtual host.

root /var/www/mi_virtual_host;

La siguiente linea que tendremos que modificar sera la de

server_name _;

En esta linea especificaremos el nombre del dominio que deseamos utilizar en el virtual host

server_name dominio.local www.dominio.local;

Pondremos todos los dominio que desemos que responda nuestro servidor web.

Para una configuración basica ya tendriamos nuestro vistual host configurado. Solo nos queda pulsar Ctrl+X, confirmar el guardado de los cambios en nuestro fichero, y salir del editor.

Verificación de la configuración del virtual host

Una vez que tengamos nuestro fichero de configuración creado, comprobamos que los hemos hecho todo correctamente usando el siguiente comando

sudo nginx -t

Si recibimos una respuesta parecida a esta

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Nuestra configuración es correcta, y esta listos para reiniciar el servidor web.

Si recibimos cualquier otro mensaje, con algo parecido a esto.

nginx: configuration file /etc/nginx/nginx.conf test failed

Tenemos algun fallo en la configuración de nuestro servidor. tendremos que revisar la configuración, centrandonos en el error que acompaña al mensaje.

Una vez que tengamos el ok por parte del servidor nginx, solo nos queda resetar el servidor para que carge la nueva condiguración.

sudo systemctl restart nginx.service

Una vez reseteado el servidor web, ya tenemos nuestro virtual host funcionando sin problemas.

Si queremos verificar si el servidor funciona correctamente, aparte de probar a cargar la pagina,. Podemos utilizar el siguiente comando

sudo systemctl status nginx.conf

Donde en la linea de «active» no tendra que mostrar el siguiente mensaje si todo esta funcionando correctamente.

Active: active (running) since Thu 2018-05-17 13:33:58 UTC; 1h 18min ago

Como siempre, si tienes cualquier duda o problema, nu dudes en escrbirnos un comentario.