Cómo instalar Nginx en Fedora 31

En este artículo veremos cómo instalar Nginx en Fedora 31 paso a paso, con lo que podrás usar el servidor web que se considera la gran alternativa al hegemónico Apache, por su ligereza y velocidad. Al final de este tutorial podrás instalar y configurar servidores virtuales y seguridad SSL en tu servidor o VPS Fedora.

Antes de instalar Nginx en Fedora 31

Si quieres seguir esta guía de instalación y configuración del servidor web Nginx en Fedora 31, debes partir de estos requisitos básicos:

  • Una máquina Fedora 31 actualizada.
  • Un usuario con privilegios de sudo o el mismo root.
  • Conexión a Internet.

Cómo instalar Nginx en Fedora 31

Para instalar el servidor web Nginx en Fedora 31 vamos a usar los paquetes disponibles en los repositorios de la propia distribución, por lo que el paso previo será actualizar la información de estos repositorios y las listas de paquetes:

~$ sudo yum update -y

El paquete que buscamos es nginx y lo descargaremos con yum:

~$ sudo yum install -y nginx

Al terminar la descarga e instalación del paquete nginx y sus dependencias, tendremos un nuevo servicio en Fedora 31 llamado nginx.service o nginx, que no queda en ejecución ni habilitado para iniciar automáticamente.

Por tanto, vamos a habilitar el servicio nginx para que inicie de forma automática junto con Fedora 31, y también lo iniciaremos manualmente por vez primera:

~$ sudo systemctl enable --now nginx

Comprobaremos que Nginx se haya en ejecución en cualquier momento con el comando systemctl status nginx:

como instalar nginx en fedora 31

Cómo saber la versión instalada de Nginx

Si en algún momento necesitas saber qué versión de Nginx se ha instalado en tu sistema Fedora 31, es tan fácil como utilizar el parámetro -v del comando nginx:

~$ nginx -v
nginx version: nginx/1.16.1

Cómo configurar el firewall de Fedora 31 para Nginx

Si quieres permitir el acceso desde la red a tu servicio Nginx en Fedora 31, debes añadir alguna excepción al firewall. Para permitir el acesso al puerto 80 TCP, el protocolo estándar HTTP, añadiríamos esta regla:

~$ sudo firewall-cmd --permanent --add-service=http

Si además vas a ofrecer contenido seguro desde el puerto 443 TCP, el protocolo seguro HTTPS, añadimos también esta regla:

~$ sudo firewall-cmd --permanent --add-service=https

Los cambios harán efecto tras recargar la configuración del firewall:

~$ sudo firewall-cmd --reload

Probando el servidor web

Ya podemos acceder desde la máquina local o desde otra máquina de la red introduciendo la dirección IP o el nombre o dominio del servidor Fedora 31.

instalar el servidor web en fedora 31

Cómo configurar Nginx en Fedora 31

Para configurar Nginx en Fedora 31 trabajaremos sobre sus archivos de configuración, que se encuentran en la ruta /etc/nginx/.

El archivo principal es nginx.conf, que además de la configuración por defecto también carga configuraciones desde otros archivos y subdirectorios como conf.d/.

Datos interesantes de la configuración por defecto pueden ser:

  • El usuario con el que corre el servicio es nginx.
  • El registro de accesos se guarda en el archivo access.log y el de errores se guarda en el archivo error.log, ambos ubicados en el directorio /var/log/nginx/.
  • La página web por defecto se aloja en /usr/share/nginx/html/.

Servidores virtuales de Nginx en Fedora 31

Si analizas el contenido del archivo nginx.conf verás que incluye un bloque server que define el comportamiento de la página web por defecto. Trabajar con servidores virtuales para otros dominios o subdominios consistirá en añadir nuevos bloques server con las correspondientes configuraciones.

Podrías añadir estos nuevos bloques en nginx.conf, pero vamos a seguir una aproximación más cómoda, creando un directorio exclusivo para las configuraciones de servidores virtuales:

~$ sudo mkdir /etc/nginx/sites.d

Para que se carguen las configuraciones de este subdirectorio editaremos nginx.conf:

~$ sudo nano /etc/nginx/nginx.conf

Al final del archivo, antes de la última llave de cierre del bloque http, añadiremos esta directiva include:

...
        include /etc/nginx/sites.d/*.conf;
}

Crearemos un nuevo servidor virtual para un nuevo dominio que apunta al servidor Fedora 31, nuevodominio.local.

Empezaremos creando el directorio donde se alojarán los archivos web:

~$ sudo mkdir /usr/share/nginx/nuevodominio.local

Y ponemos el contenido web en el nuevo directorio. En este caso será un simple archivo HTML:

~$ sudo nano /usr/share/nginx/nuevodominio.local/index.html

Contendrá un simple mensaje:

<h1>Bienvenidos a nuevodominio.local</h1>

Ahora creamos el archivo de configuración para el nuevo servidor virtual, ubicándolo en el directorio que hemos destinado para ello:

~$ sudo nano /etc/nginx/sites.d/nuevodominio.local.conf

El contenido de este archivo será el siguiente:

server {
        listen  80;
        listen  [::]:80;
        server_name nuevodominio.local;
        root    /usr/share/nginx/nuevodominio.local;

        location / {
        }

        error_log /var/log/nginx/nuevodominio.local-error.log;
        access_log /var/log/nginx/nuevodominio.local-access.log main;
}

En este bloque server especificamos algunas directivas como:

  • listen, que se usa dos veces, una para IPv4 y otra para IPv6.
  • server_name, donde especificamos el dominio al que atiende el servidor virtual.
  • root, donde indicamos el directorio del contenido web.
  • location, un bloque donde añadir configuraciones especiales para rutas del servidor virtual.
  • Y error_log y access_log que especifican los archivos de registro de errores y accesos, respectivamente.

Para aplicar los cambios, será necesario recargar la configuración del servicio Nginx:

~$ sudo systemctl reload nginx

Y a continuación probamos el nuevo servidor virtual introduciendo en el navegador el dominio:

como instalar y configurar el servidor web nginx en fedora 31

Cómo configurar seguridad SSL para Nginx en Fedora 31

Si quieres ofrecer contenido seguro desde los sitios web de tu servidor Nginx en Fedora 31, habrá que configurar el protocolo HTTPS con seguridad SSL.

Vamos a configurar rápidamente tanto la página web por defecto como el nuevo servidor virtual.

Previamente, necesitamos claves y certificados para cada dominio desde el que queramos ofrecer conexiones seguras. Si no tienes estos certificados firmados por autoridades certificadoras instalados en el sistema, puedes crear certificados autofirmados para pruebas.

Crearemos e instalaremos la clave y el certificado para el dominio principal (el servidor de la página por defecto):

~$ sudo openssl req -newkey rsa:2048 -x509 -nodes -days 3650 -out /etc/pki/tls/certs/fedora31.local.crt -keyout /etc/pki/tls/private/fedora31.local.key

En el cuestionario que se nos presenta durante la creación de los archivos, debemos contestar en la sección «Common Name» con el dominio al que representará el certificado:

...
Common Name (eg, your name or your server's hostname) []:fedora31.local
...

Haremos la misma operación para cada dominio, cambiando los nombres de archivo y «Common Name» adecuadamente.

Para el servidor por defecto, editaremos nginx.conf y añadiremos dentro del bloque server estas directivas:

...
    server {
        listen       80 default_server;
        listen       [::]:80 default_server;

        listen          443 ssl default_server;
        listen          [::]:443 ssl default_server;

        server_name  _;

        ssl_certificate /etc/pki/tls/certs/fedora31.local.crt;
        ssl_certificate_key /etc/pki/tls/private/fedora31.local.key;

        root         /usr/share/nginx/html;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf;

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }
...

Solamente se han añadido dos directivas listen para activar el puerto 443 con seguridad SSL y otras dos directivas para usar la clave pública y la clave privada con la que ciframos la conexión.

La configuración del servidor virtual quedaría así:

server {
        listen  80;
        listen  [::]:80;
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name nuevodominio.local;
        root    /usr/share/nginx/nuevodominio.local;

        ssl_certificate /etc/pki/tls/certs/nuevodominio.local.crt;
        ssl_certificate_key /etc/pki/tls/private/nuevodominio.local.key;

        location / {
        }

        error_log /var/log/nginx/nuevodominio.local-error.log;
        access_log /var/log/nginx/nuevodominio.local-access.log main;
}

Aplicamos los cambios recargando la configuración de Nginx:

~$ sudo systemctl reload nginx

Ya podemos acceder a los dominios configurados, pero ahora usaremos https:// en lugar de http:// en las URLs:

como configurar el servidor web nginx en fedora 31

Si has usado certificados autofirmados, el navegador nos alertará sobre la imposibilidad de comprobar si el certificado es auténtico, ya que ninguna autoridad certificadora lo respalda.

De una u otra forma, dependiendo del navegador, podremos aceptar los riesgos y continuar hacia el sitio web:

configurar nginx en fedora 31

Y ya tenemos nuestros servidores virtuales también accesibles a través de protocolo seguro HTTPS.

Conclusión

Ahora ya sabes cómo instalar y configurar Nginx en Fedora 31 en tu servidor o VPS, y podrás alojar tantos dominios en servidores virtuales como necesites o soporten los recursos del sistema. Y, lo mejor de todo, ofreciendo conexiones seguras a tus visitanes y usuarios.

Si tienes alguna pregunta, duda, sugerencia, etc. puedes dejar un comentario.

¡Apoya esta entrada!

¿Te ha resultado de utilidad esta guía de instalación y configuración de Nginx en Fedora 31? Si es así y quieres agradecérnoslo, cualquier aportación mínima ayuda al mantenimiento de este sitio y la creación de más contenidos sobre Fedora 31 y Nginx. ¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (1 votos, promedio: 5,00 de 5)
Cargando…

Deja un comentario

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies.

ACEPTAR
Aviso de cookies