Cómo instalar Nginx en openSUSE Leap 15

En este artículo veremos cómo instalar Nginx en openSUSE Leap 15 paso a paso, de modo que podrás servir tus sitios y aplicaciones web desde tu servidor o VPS openSUSE, aprovechando características como servidores virtuales y conexiones seguras con SSL.

Antes de instalar Nginx en openSUSE Leap 15

Para poder seguir esta guía de instalación y configuración de Nginx en openSUSE Leap 15 debes partir de las siguientes condiciones:

  • Una máquina openSUSE Leap 15.1, 15.2 ó 15.3 actualizada.
  • Acceso a línea de comandos con root o un usuario con permisos de sudo.
  • Conexión a Internet.

Cómo instalar Nginx en openSUSE Leap 15

Vamos a instalar Nginx en openSUSE Leap 15 aprovechando los paquetes disponibles en la propia distribución, por lo que la primera acción que realizaremos será actualizar la información de los repositorios:

~> sudo zypper refresh

El paquete que necesitamos es nginx, que descargaremos mediante zypper:

~> sudo zypper install -y nginx

Tras la descarga e instalación de Nginx se habrá creado un nuevo servicio en openSUSE Leap 15, el servicio nginx.service o simplemente nginx.

El servicio Nginx no está iniciado ni habilitado para el arranque automático junto a openSUSE Leap 15, cosa que solucionaremos mediante el comando systemctl:

~> sudo systemctl enable --now nginx

Podrás comprobar el estado del servicio Nginx en cualquier momento con el comando systemctl status nginx:

como instalar nginx en opensuse leap 15

Versión instalada de Nginx en openSUSE Leap 15

Si en un momento dado necesitas saber qué versión de Nginx tienes instalada en openSUSE Leap 15 es tan fácil como utilizar el argumento -v de Nginx:

~> /usr/sbin/nginx -v
nginx version: nginx/1.19.8

La versión exacta dependerá a su vez de la versión de openSUSE Leap 15 sobre la que estés trabajando.

Configurar el firewall de openSUSE Leap 15 para Nginx

Si deseas acceder al servidor web Nginx desde la red necesitarás configurar el firewall de openSUSE Leap 15, ya que este por defecto bloquea las conexiones entrantes.

Para el protocolo HTTP estándar añadiremos la siguiente regla:

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

Si además tienes intención de servir contenido mediante conexiones seguras, añadiremos una regla más:

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

Los cambios entran en funcionamiento tras recargar la configuración del firewall:

~> sudo firewall-cmd --reload

Cómo acceder a Nginx en openSUSE Leap 15

Para acceder al sitio web por defecto del servidor Nginx en openSUSE Leap 15 es tan sencillo como indicar en el navegador la dirección IP o el dominio del servidor.

Por ejemplo, la máquina openSUSE Leap 15.3 sobre la que hemos desarrollado este tutorial es accesible en el subdominio opensuse15.local.lan, así que podemos usar http://opensuse15.local.lan como URL:

instalar nginx en opensuse leap 15

Es posible que esperaras una página de bienvenida en lugar de un mensaje de error, pero aun así podemos comprobar que Nginx funciona.

El error se debe a que el sitio web por defecto de Nginx no contiene documentos HTML. De hecho, podemos crear nuestra propia página de bienvenida:

~> sudo nano /srv/www/htdocs/index.html

Como contenido, cualquier mensaje servirá:

<h1>Bienvenidos a Nginx en openSUSE Leap 15</h1>
<span>Powered by Nginx</span>

Guardados los cambios, recargamos el navegador y aparecerá la página que acabamos de crear:

nginx en opensuse leap 15

Ahora sí tenemos una página por defecto en lugar del mensaje de error.

Cómo configurar Nginx en openSUSE Leap 15

Para configurar Nginx en openSUSE Leap 15 debemos tener en cuenta que su configuración se reparte en archivos y directorios organizados bajo la ruta /etc/nginx/.

El archivo principal es nginx.conf, que a su vez se encarga de incluir configuraciones adicionales en otros archivos y directorios como conf.d/ y vhosts.d/.

Servidores virtuales de Nginx

Ya hemos visto que el servidor por defecto de Nginx ofrece la página web contenida en /srv/www/htdocs/. Esta es la página que se mostrará para los accesos mediante dirección IP, el dominio principal de la máquina openSUSE Leap 15 y cualquier otro dominio que apunte a la máquina pero no tenga un servidor virtual configurado.

Sin embargo es posible que queramos añadir otros servidores virtuales que sirvan sitios web distintos para dominios adicionales que apuntan al mismo servidor.

Para servidores en Internet será necesario tener registrados y configurados dominios apuntando al servidor openSUSE Leap 15, mediante servicios profesionales como Namecheap:

>Aunque en redes locales bastará con configurar adecuadamente el servidor DNS.

Vamos a crear un servidor virtual para el subdominio opensuse2.local.lan que apunta también al servidor openSUSE Leap 15 en el que estamos trabajando.

Prepararemos su propio directorio de archivos web:

~> sudo mkdir /srv/www/opensuse2.local.lan

Y crearemos algún contenido, como una página de bienvenida:

~> sudo nano /srv/www/opensuse2.local.lan/index.html

Con algún mensaje que nos permita distinguir el nuevo sitio web:

<h1>Bienvenidos a opensuse2.local.lan</h1>
<span>Powered by Nginx</span>

Es el momento de crear el archivo de configuración en el directorio adecuado:

~> sudo nano /etc/nginx/vhosts.d/opensuse2.local.lan.conf

Con esta configuración inicial:

server {
        listen 80;
        listen [::]:80;
        server_name opensuse2.local.lan;
        root /srv/www/opensuse2.local.lan;
        location / {
        }
        error_log /var/log/nginx/opensuse2.local.lan-error.log;
        access_log /var/log/nginx/opensuse2.local.lan-access.log;
}

La configuración es bastante intuitiva, pero no está de más abundar un poco sobre la misma:

  • La configuración del servidor virtual está englobada en un bloque server.
  • Especificamos dos directivas listen para el protocolo HTTP estándar, puerto 80, una para IPv4 y otra para IPv6.
  • server_name indica a qué dominio responderá el servidor virtual.
  • root especifica la ruta en el sistema de archivos donde se encuentra el sitio web para este servidor virtual.
  • El bloque location serviría para añadir configuraciones adicionales para este servidor virtual, aunque en esta ocasión no se incluye nada.
  • Y error_log y access_log indican las rutas a los archivos de registro de errores y accesos de este servidor.

Antes de aplicar la nueva configuración, podemos comprobar si es correcta con la opción -t del comando nginx:

~> sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Aunque los mensajes sólo hacen referencia al archivo principal de configuración, nginx.conf, se ha tenido en cuenta cualquier otro archivo de configuración incluido en el principal, como serían todos los presentes en el directorio vhosts.d/.

En vista de que la configuración es correcta, podemos hacer que Nginx la cargue:

~> sudo systemctl reload nginx

Ahora podemos introducir en el navegador la URL que corresponde al dominio que acabamos de configurar:

como configurar nginx en opensuse leap 15

Y comprobaremos que Nginx nos ofrece páginas distintas dependiendo del dominio con el que accedamos.

Seguridad SSL

Si quieres dotar de seguridad SSL al servidor Nginx de openSUSE Leap 15 o a alguno de sus servidores virtuales, necesitarás una clave y un certificado asociados al dominio que vas a proteger. Para servidores en Internet es importante que estos certificados estén firmados por autoridades certificadoras, como los que puedes obtener desde servicios profesionales como Namecheap:

SSL Certificate for just $8.88 with Namecheap

Si no dispones de certificados firmados por autoridades certificadoras, o estás haciendo pruebas, puedes crear certificados autofirmados propios con el comando openssl.

Crearemos un directorio para las claves y otro para los certificados dentro del directorio de configuración de Nginx:

~> sudo mkdir /etc/nginx/certs /etc/nginx/private

El directorio para las claves privadas debería tener acceso restringido:

~> sudo chmod 700 /etc/nginx/private/

En este ejemplo crearemos los archivos de clave y el certificado para el servidor virtual del dominio opensuse2.local.lan:

~> sudo openssl req -newkey rsa:2048 -x509 -nodes -days 3650 -out /etc/nginx/certs/opensuse2.local.lan.crt -keyout /etc/nginx/private/opensuse2.local.lan.key

Durante la creación de los archivos se nos pedirá cierta información que incorporar a los mismos. Es importante contestar en «Common Name» con el dominio para el que creamos el certificado:

...
Common Name (e.g. server FQDN or YOUR name) []:opensuse2.local.lan
...

Ahora editaremos el archivo de configuración del servidor virtual y añadiremos algunas directivas relacionadas con el cifrado SSL:

server {
        listen 80;
        listen [::]:80;
        listen 443 ssl;
        listen [::]:443 ssl;
        server_name opensuse2.local.lan;
        ssl_certificate /etc/nginx/certs/opensuse2.local.lan.crt;
        ssl_certificate_key /etc/nginx/private/opensuse2.local.lan.key;
        root /srv/www/opensuse2.local.lan;
        location / {
        }
        error_log /var/log/nginx/opensuse2.local.lan-error.log;
        access_log /var/log/nginx/opensuse2.local.lan-access.log;
}

Hemos añadido dos directivas listen (para IPv4 e IPv6) que indican el puerto estándar 443 para HTTPS y que se active la seguridad SSL para ese puerto.

Y además las directivas ssl_certificate y ssl_certificate_key que indican las rutas a los archivos de certificado y clave privada, respectivamente.

Recuerda usar el comando sudo nginx -tantes de recargar la configuración de Nginx:

~> sudo systemctl reload nginx

Es el momento de acceder al servidor virtual desde el navegador, pero en esta ocasión en lugar de http:// debemos iniciar la URL con https://.

En este ejemplo accedemos con https://opensuse2.local.lan como URL:

configuracion ssl de nginx en opensuse leap 15

Si has usado certificados autofirmados en lugar de certificados firmados por autoridades certificadoras, el navegador nos informará de la imposibilidad de garantizar la autenticidad de los certificados, algo normal en esta situación.

Dependiendo del navegador, habrá cierta forma de confirmar los riesgos y continuar accediendo al sitio web:

instalar y configurar nginx en opensuse leap 15

Ahora estamos accediendo a la versión cifrada del sitio web del servidor virtual.

Si el sitio web que quieres cifrar es el servidor por defecto, entonces esta configuración se hace en nginx.conf.

Conclusión

Pues ya sabes cómo instalar y configurar Nginx en openSUSE Leap 15, cómo sacar partido de los servidores virtuales, cifrar las conexiones con SSL, verificar las configuraciones antes de cargarlas, etc.

Si te ha surgido cualquier duda o pregunta, tienes alguna sugerencia, etc. puedes dejar un comentario.

¡Apoya este sitio!

¿Ya has puesto en marcha tu sitio web gracias a esta guía de instalación y configuración de Nginx en openSUSE Leap 15? Si es así y deseas agradecérmelo, la más mínima aportación contribuye al mantenimiento de este sitio, a la creación de nuevos tutoriales y, sobre todo, a la adquisición de un nuevo ventilador para la oficina (hace mucho calor).

Puedes colaborar dejando desde 1 $ de propina desde PayPal:

O, si te sientes especialmente agradecido, puedes invitarnos a un café:

¡Gracias!

NOTA: Este es el ventilador que tenemos pensado:

Valora esta entrada

5/5 - (1 voto)

Deja un comentario