Cómo Instalar Nginx en Fedora 30

Cómo Instalar Nginx en Fedora 30

En esta entrada veremos cómo instalar Nginx en Fedora 30 paso a paso, de modo que puedas usar uno de los servidores más rápidos y ligeros de los que compiten contra el viejo Apache. Con esta guía aprenderás a instalar y configurar Nginx, con servidores virtuales y seguridad SSL.

Antes de instalar Nginx en Fedora 30

Necesitarás unos mínimos requisitos para seguir esta guía:

  • Un sistema Fedora 30 actualizado.
  • Acceso por terminal mediante root o usuario con permisos de sudo.
  • Conexión a Internet.

Supongo que si estás leyendo esto es porque ya estás en condiciones de empezar con el trabajo, así que vamos a ponernos manos a la obra.

Cómo instalar Nginx en Fedora 30

Para instalar Nginx en Fedora 30 usaremos el repositorio oficial de Fedora, mediante el comando yum.

Antes de nada, actualizaremos el sistema:

~$ sudo yum -y update

Y ahora sí, instalamos el paquete nginx, junto con todas sus dependencias:

~$ sudo yum -y install nginx

En unos instantes se descargarán e instalarán todos los paquetes necesarios.

Cómo iniciar Nginx en Fedora 30

El servicio que acabamos de instalar se llama nginx y por defecto ni se activa ni queda en funcionamiento, como podemos comprobar con systemctl status:

~$ systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: inactive (dead)
~$

Para activar el servicio y que inicie con Fedora en cada arranque del sistema emplearemos el comando systemctl enable:

~$ sudo systemctl enable nginx
Created symlink /etc/systemd/system/multi-user.target.wants/nginx.service → /usr/lib/systemd/system/nginx.service.
~$

Finalmente, para iniciar el servicio usaremos el comando systemctl start:

~$ sudo systemctl start nginx

Ahora ya podemos comprobar que el servicio nginx está activo:

~$ systemctl status nginx
● nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
   Active: active (running) since Sat 2019-05-25 20:15:52 CEST; 1min 15s ago
  Process: 1166 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
  Process: 1167 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 1168 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
 Main PID: 1169 (nginx)
    Tasks: 2 (limit: 1141)
   Memory: 2.3M
   CGroup: /system.slice/nginx.service
           ├─1169 nginx: master process /usr/sbin/nginx
           └─1170 nginx: worker process

may 25 20:15:52 fedora30.local systemd[1]: Starting The nginx HTTP and reverse proxy server...
may 25 20:15:52 fedora30.local nginx[1167]: nginx: [warn] could not build optimal types_hash, you should increase either types_hash_max_size: 2048 or types_hash_bucket_size: 64; ignoring ty>
may 25 20:15:52 fedora30.local nginx[1167]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
may 25 20:15:52 fedora30.local nginx[1167]: nginx: configuration file /etc/nginx/nginx.conf test is successful
may 25 20:15:52 fedora30.local nginx[1168]: nginx: [warn] could not build optimal types_hash, you should increase either types_hash_max_size: 2048 or types_hash_bucket_size: 64; ignoring ty>
may 25 20:15:52 fedora30.local systemd[1]: Started The nginx HTTP and reverse proxy server.

Vamos a comprobarlo desde un navegador en otra máquina de la red local:

como instalar nginx en fedora 30
Nginx en Fedora 30 parece que no acepta conexiones externas

No ha funcionado, ¿la razón?… El firewall de Fedora 30.

Cómo configurar el firewall de Fedora para Nginx

Vamos a añadir los servicios http y https como excepciones del firewall de Fedora:

~$ sudo firewall-cmd --permanent --add-service=http --add-service=https
success
~$ sudo firewall-cmd --reload
success
~$

Y ahora probamos de nuevo a acceder desde el navegador de otra máquina:

instalar nginx fedora 30
Ahora sí funciona

Ya tenemos el servidor web Nginx funcionando y sirviendo contenido desde Fedora.

Cómo configurar Nginx en Fedora 30

A la hora de configurar Nginx en Fedora 30 debemos tener en cuenta que la ruta de los archivos de configuración está en /etc/nginx/.

El archivo de configuración principal es /etc/nginx/nginx.conf.

Cada vez que hagamos cambios en la configuración de Nginx estos no se activarán hasta que recarguemos la configuración:

~$ sudo systemctl reload nginx

Achivos de registro de eventos o logs

Los archivos de registro se encuentran en /var/log/nginx/. Siempre que las cosas no vayan como esperas y no sepas a qué se debe, echa un vistazo a las últimas líneas de estos archivos.

Ruta de archivos web

La ruta configurada por defecto para alojar sitios web en el sistema es /usr/share/nginx/. Concretamente, la página web por defecto está en /usr/share/nginx/html/.

Servidores virtuales (virtual hosts) de Nginx en Fedora 30

Si vas a configurar servidores virtuales para tu servidor Nginx obviamente necesitarás tener dominios registrados y apuntados al servidor Fedora. En esta guía configuraremos un servidor virtual para el subdominio fedora30.comoinstalar.me.

Si todavía no tienes registrados los dominios, te recomiendo Namecheap, el lugar donde registro y renuevo los dominios de todos mis sitios web, incluyendo el que estás visitando ahora.

Vamos a crear la configuración necesaria, empezando por un directorio donde se guardarán los archivos de configuración de cada servidor virtual.

Este directorio lo situaremos dentro de la carpeta de configuración de Nginx:

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

Dentro de esta carpeta crearemos un archivo con extensión .conf por cada servidor virtual. Para que Nginx lea estos archivos, se lo indicaremos en su configuración, editando el archivo principal:

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

Buscaremos dentro del bloque server una directiva include que ya se encarga de cargar otros archivos de configuración:

http {
[...]
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
[...]

Justo a continuación de esa línea podemos añadir otra directiva include para tener en cuenta el directorio de configuraciones de servidores virtuales que acabamos de crear:

[...]
    # Load modular configuration files from the /etc/nginx/conf.d directory.
    # See http://nginx.org/en/docs/ngx_core_module.html#include
    # for more information.
    include /etc/nginx/conf.d/*.conf;
    include /etc/nginx/sites.d/*.conf;
[...]

Antes de configurar el primer servidor virtual, vamos a crear una página web de prueba. Creamos una carpeta donde residirán las páginas y archivos del sitio web:

$ sudo mkdir /usr/share/nginx/fedora30.comoinstalar.me

Y creamos un archivo index.html de prueba, para tener un contenido básico:

$ sudo nano /usr/share/nginx/fedora30.comoinstalar.me/index.html

Como contenido de este archivo, vale cualquier cosa que nos sirva para hacer la prueba:

<h1>Bienvenidos a fedora30.comoinstalar.me</h1>

Ya podemos empezar a configurar el servidor virtual para este sitio web. Editaremos su archivo de configuración en el directorio que creamos para servidores virtuales:

$ sudo nano /etc/nginx/sites.d/fedora30.comoinstalar.me.conf

El contenido mínimo sería este:

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

        server_name fedora30.comoinstalar.me;

        root /usr/share/nginx/fedora30.comoinstalar.me/;
        index index.html;

        location / {
                try_files $uri $uri/ =404;
        }

        error_log /var/log/nginx/fedora30.comoinstalar.me-error.log;
        access_log /var/log/nginx/fedora30.comoinstalar.me-access.log main;
}

Esta configuración es muy sencilla, se basa en un bloque server que contiene directivas y otros bloques. Veamos qué son:

listen

La primera línea indica que escucha peticiones IPv4 en el puerto 80, y la segunda es igual, pero sobre IPv6.

server_name

Aquí especificas el dominio o subdominio al que responde el servidor virtual.

root

La ruta de los archivos y documentos web del sitio.

index

Identifica el archivo que actuará como página por defecto dentro de las carpetas web del sitio. Normalmente el index.html, index.php, etc.

location

Este bloque permite aplicar una serie de configuraciones a localizaciones dentro del sitio. En este ejemplo, en la ruta principal se prueba la URL a la que se quiere acceder en primer lugar como fichero, en su defecto como directorio y si falla esto, se devolverá un error 404 (not found).

logs

La ubicación de los archivos de registro del servidor virtual, tanto el de errores como el de acceso.

Cómo iniciar el nuevo servidor virtual

Para activar la nueva configuración, recargamos el servicio nginx:

$ sudo systemctl reload nginx

Y para comprobar si funciona, accedemos desde el navegador utilizando como URL el dominio que hemos configurado:

Funciona justo como esperábamos.

HTTPS en servidores virtuales de Nginx en Fedora

Para añadir acceso SSL por protocolo HTTPS, debemos tener instalados los certificados SSL asociados al dominio que estamos configurando.

Configuraremos el acceso a estos certificados en el archivo de configuración del servidor virtual, añadiendo algunas líneas:

server {
        listen 80;
        listen [::]:80;
        listen 443 ssl;
        listen [::]:443 ssl;

        server_name blog.fedora30.local;

        ssl_certificate /etc/ssl/certs/blog.fedora30.local/cert.pem;
        ssl_certificate_key /etc/ssl/certs/blog.fedora30.local/privkey.pem;

        root /usr/share/nginx/blog.fedora30.local/;
        index index.html;

        location / {
                try_files $uri $uri/ =404;
        }

        error_log /var/log/nginx/blog.fedora30.local;
        access_log /var/log/nginx/blog.fedora30.loal main;
}

Hemos añadido un par de directivas listen para usar SSL en el puerto 443 (por IPv4 e IPv6) y las sentencias correspondientes a la ubicación de los certificados SSL.

Recargamos de nuevo la configuración del servidor y accedemos, esta vez usando HTTPS en lugar de HTTP:

Y ya tenemos el servidor virtual accesible también por HTTPS.

Conclusión

Ya sabes cómo instalar Nginx en Fedora 30, así que si estás pensando en configurar tu VPS Fedora para mucho tráfico o aplicaciones web pesadas, es una gran alternativa a Apache.

Si tienes dudas, sugerencias, errores o consultas, déjame un comentario.

¡Apoya este sitio!

¿Pensabas que instalar y configurar Nginx en Fedora 30 sería un dolor de cabeza? ¡Pues acabas de comprobar que no es así! Si estás tan contento de haberlo conseguido que te gustaría contribuir mínimamente al mantenimiento de este sitio… ¡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