Entre la variedad de servidores 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.