Saltar al contenido

Servidor Nginx. Instalación y configuración

    Nginx es un servidor web ligero de alto rendimiento y un proxy para protocolos de correo electrónico.

    Es software libre y de código abierto, licenciado bajo la Licencia BSD simplificada; también existe una versión comercial distribuida bajo el nombre de Nginx Plus. Es multiplataforma, por lo que corre en sistemas tipo Unix y Windows.

    El sistema es usado por una larga lista de sitios web conocidos, como: WordPress, Netflix, Hulu, GitHub, Ohloh, SourceForge, TorrentReactor y partes de Facebook.

    La ventaja de Ngnix es que usa menos recursos que Apache.

    En este enlace puedes ver el proceso de instalación y configuración de Apache Server:

    Vamos a ver el proceso de instalación y configuración de Nginx.

    Para que funcione Ngnix debe estar Apache server apagado ya que los dos a la vez no pueden funcionar. Para ello primero vamos a tomar privilegios con:

    su root

    y seguidamente utilizaremos:

    /etc/init.d/apache2 stop

    Ahora vamos a necesitar crear un usuario para nginx donde se nos pedirá que le asignemos una contraseña. El resto de campos los podemos dejar en blanco dando a Intro:

    Este usuario que acabamos de crear va a necesitar permisos de root por lo que vamos a dárselos. Para ello vamos a instalar primero sudo en el caso de que no lo tengamos instalado:

    Ejecutaremos visudo para abrir el archivo que contiene los permisos con:

    sudo visudo

    Bajaremos hasta encontrar User privilege specification

    y añadiremos nuestro usuario nginx con los mismos privilegios que tiene root:

    ahora debemos irnos a este usuario poniendo:

    su nginx

    actualizaremos el sistema:

    Vamos a instalar ahora nginx. En este punto deberemos tener ya instalado php y MySql que en mi caso está instalado de cuando instalamos anteriormente Apache.

    Si queremos saber si tenemos instalado php y MySql lo haremos con este comando:

    dpkg --get-selections | grep mysql

    Instalamos Nginx:

    Para ver si está instalado nos iremos al navegador y pondremos la dirección de localhost y nos mostrará la página web que habíamos creado para Apache Server ya que Apache está parado y Nginx está ahora funcionando y el directorio es el mismo:

    Tenemos que instalar la versión server de MySql para lo cual primero añadiremos el repositorio:

    wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb

    y vamos a instalar el paquete:

    sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb

    Seleccionamos el producto a instalar:

    la versión:

    Volveremos a la anterior pantalla y marcamos Aceptar:

    Ahora, en Debian 10 Buster ejecutaremos el siguiente comando para instalar el servidor MySQL:

    sudo apt install default-mysql-server

    Ya lo tendríamos instalado:

    Es importante editar el archivo de configuración de php para que pueda trabajar de forma correcta con Nginx:

    sudo nano /etc/php/7.3/fpm/php.ini

    Con Ctrl+W buscaremos la línea cgi.fix

    En la línea cgi.fix_pathinfo=1 lo que vamos a hacer es descomentarlo quitando el punto y coma (;) y el 1 lo cambiaremos por un 0 ya que el 1 procesa los archivos más cercanos y eso es más inseguro. Con el 0 le indicamos que procese solo los archivos php que le hemos solicitado:

    Después de esto deberemos reiniciar el servicio php con:

    etc/init.d/php7.3-fpm restart

    Ahora vamos a editar el archivo de configuración de Nginx:

    sudo nano /etc/nginx/sites-available/default

    Si bajamos un poco podemos ver el directorio, que es el mismo que en Apache y por eso visualizábamos la página que habíamos creado para Apache. También observamos que nos indica que podemos añadir index.php si estamos usando PHP

    Por ello vamos a incluir index.php:

    El siguiente paso sería crear nuestras páginas web. Nos iremos al directorio /var/www/ y aquí tenemos la carpeta de la página que habíamos creado de ejemplo para Apache y la de html.

    Aquí vamos a crear una carpeta que se llame, por ejemplo, unfantasma.com:

    Entramos en la carpeta y crearemos un archivo de inicio:

    y dentro pondremos el contenido que queramos para la página:

    Si ahora abrimos otra máquina como puede ser WindowsXP y en el navegador ponemos la IP de Debian, que es donde tenemos el servidor, vemos que la página que nos muestra es la que habíamos creado para Apache:

    Entonces nos vamos a ir en el servidor de Nginx a los sitios disponibles /etc/nginx/sites-available donde tenemos default

    y vamos a copiar este trozo de código que hay al final:

    Con este código copiado vamos ahora a crear un archivo que se llame como nuestra página (unfantasma.com):

    y dentro vamos a pegar el código que hemos copiado y lo vamos a descomentar quitándole las almohadillas. También cambiaremos el nombre del server por el nuestro y en el directorio el que hemos creado:

    Aquí también podemos poner un error_log para indicarle que tipo de archivo nos va a guardar cuando surja cualquier tipo de fallo de carácter crítico:

    Como cada vez que creemos una página tendremos que reiniciar el servicio:

    Ahora tendremos que ver los sites habilitados:

    y enlazar el sitio que hemos creado en disponibles (available) a los habilitados (enabled):

    sudo ln -s ../sites-available/unfantasma.com

    Con ln le estamos diciendo que cree un link y con los dos puntos (../) que retroceda un directorio

    volvemos al Windows XP y como no tenemos comprado el dominio unfantasma.com nos tendremos que ir a este directorio donde encontraremos el archivo hosts:

    y lo vamos a modificar abriéndolo con el bloc de notas:

    añadiendo el dominio que hemos creado:

    Reiniciamos nginx en el servidor:

    Volvemos al navegador y en lugar de poner la IP pondremos el dominio unfantasma.com:

    Ya tenemos el servidor funcionando:

    Si quisiéramos poner más páginas haríamos el mismo proceso. En sites-available copiaríamos con otro nombre la que tenemos:

    Editamos la nueva que hemos creado cambiando el nombre del server, la ubicación y el nombre del log.

    También tendremos que crear su carpeta para diferenciarla de la otra mediante el mismo proceso anterior en:

    Resumen de privacidad

    Esta web utiliza cookies para que podamos ofrecerte la mejor experiencia de usuario posible. La información de las cookies se almacena en tu navegador y realiza funciones tales como reconocerte cuando vuelves a nuestra web o ayudar a nuestro equipo a comprender qué secciones de la web encuentras más interesantes y útiles.