Cómo instalar Nginx en FreeBSD 12.1

En este artículo veremos cómo instalar el servidor web Nginx en FreeBSD 12.1 paso a paso, una magnífica alternativa para ofrecer contenido y aplicaciones web desde tu servidor o VPS FreeBSD, incluyendo servidores virtuales y seguridad SSL.

Antes de instalar Nginx en FreeBSD 12.1

Para seguir esta guía de instalación y configuración de Nginx en FreeBSD 12.1 debes partir de estos requisitos mínimos:

  • Un sistema FreeBSD 12.1 actualizado.
  • Los paquetes nano y sudo.
  • Un usuario con permisos de sudo, o el mismo root.
  • Conexión a Internet.

Cómo instalar Nginx en FreeBSD 12.1

Para instalar Nginx en FreeBSD 12.1 usaremos los paquetes del mismo repositorio del sistema, así que actualizamos en primer lugar las listas de paquete:

$ sudo pkg update

En esta ocasión el paquete que buscamos es nginx que descargaremos con el comando pkg:

$ sudo pkg install -y nginx

Tras descargar e instalar el paquete nginx y sus dependencias se crea el servicio nginx en nuestro sistema FreeBSD 12.1. Como suele ser habitual siempre que se instala un nuevo servicio, Nginx no queda iniciado ni habilitado tras la instalación.

Para que Nginx inicie automáticamente en cada arranque de FreeBSD 12.1, habilitaremos el servicio nginx:

$ sudo service nginx enable

Y para iniciar Nginx por primera vez, arrancaremos el servicio manualmente:

$ sudo service nginx start

Podremos comprobar que Nginx ha quedado en ejecución también con el comando service:

$ service nginx status
nginx is running as pid 883.

¿Qué versión de Nginx tengo instalada en FreeBSD 12.1?

Si necesitas saber la versión de Nginx que has instalado en FreeBSD 12.1 es muy fácil averiguarlo desde consola, basta con usar el parámetro -v del comando nginx:

$ nginx -v
nginx version: nginx/1.16.1

Probar el servicio Nginx en FreeBSD 12.1

Finalmente, puedes comprobar el funcionamiento de Nginx en FreeBSD 12.1 a través de un navegador e introduciendo la dirección IP o dominio del servidor:

como instalar el servidor web nginx en freebsd 12.1

Obtenemos la página de pruebas de Nginx, como esperábamos.

Cómo configurar Ningx en FreeBSD 12.1

En el momento de configurar Nginx en FreeBSD 12.1 debemos tener en cuenta que la ruta de los archivos de configuración es /usr/local/etc/nginx/, siendo el archivo principal de configuración nginx.conf.

El archivo nginx.conf contiene una configuración mínima para la página web por defecto de FreeBSD 12.1, que reside en /usr/local/www/nginx/. Aunque puede parecer una buena idea alojar los archivos de nuestra página por defecto en esa ruta, es mejor no hacerlo, ya que futuras actualizaciones podrían sobreescribir archivos. En su lugar podemos configurar una ruta alternativa.

Por ejemplo, creamos un directorio nuevo para la página web:

$ sudo mkdir /usr/local/www/default

Podríamos cambiar la propiedad de esta carpeta a nuestro usuario de trabajo:

$ sudo chown $USER:$USER /usr/local/www/default/

Y crearíamos nuestro propio mensaje de bienvenida, a través de un archivo index.html (ya no haría falta usar sudo):

$ nano /usr/local/www/default/index.html

Con cualquier contenido:

<h1>Bienvenidos a FreeBSD 12.1</h1>
<small>Powered by Nginx</small>

Ahora editamos el archivo principal de configuración de Nginx en FreeBSD 12.1, nginx.conf:

$ sudo nano /usr/local/etc/nginx/nginx.conf

Y dentro del bloque server buscaremos la directiva root del bloque location principal:

...
        location / {
            root   /usr/local/www/nginx;
            index  index.html index.htm;
        }
...

Cambiaremos el valor actual de root por el nuevo directorio que hemos creado:

...
            root   /usr/local/www/default;
...

Guardamos los cambios, cerramos el archivo y recargamos la configuración el servicio Nginx:

$ sudo service nginx reload

Ahora, al acceder de nuevo a la página web por defecto del servidor FreeBSD 12.1 veremos los cambios:

como instalar y configurar nginx en freebsd 12.1

Ya sabemos cómo hacer cambios de configuración en Nginx y aplicarlos.

Cómo configurar servidores virtuales de Nginx en FreeBSD 12.1

Si has observado la configuración de Nginx en el archivo nginx.conf, habrás visto que básicamente se trata de un bloque http que contiene entre otras cosas un gran bloque server (que define el sitio web por defecto), pero que contiene otro bloque server desactivado.

Básicamente los servidores virtuales consisten en bloques server adicionales que se asocian a dominios distintos.

Directorio de configuraciones para los servidores

Pero en vez de añadir estos bloques server en nginx.conf, crearemos un subdirectorio exclusivo para su configuración:

$ sudo mkdir /usr/local/etc/nginx/sites.d

Y editaremos nginx.conf para añadir una directiva que incluya los distintos archivos de configuración de servidores virtuales que existan en ese nuevo directorio. Cerca del final del archivo, y dentro del bloque http, añadiremos esta línea:

...
    #}

        include sites.d/*.conf;
}

Añadiendo servidores virtuales

Ahora añadiremos un nuevo servidor virtual para un subdominio del dominio principal. Recuerda que para poder tener servidores virtuales es necesario disponer de dominios registrados apuntando a tu servidor o VPS FreeBSD 12.1.

Si aún no los has registrado, te puedo recomendar Namecheap, que es donde registro y renuevo los dominios de este y otros sitios web:

Crearemos el directorio donde alojaremos los archivos web del servidor virtual:

$ sudo mkdir /usr/local/www/blog

Nos concederemos la propiedad del directorio para no tener que usar sudo con el contenido de este directorio (si te parece oportuno):

$ sudo chown $USER:$USER /usr/local/www/blog/

Crearemos un archivo index.html por tener un contenido mínimo:

$ nano /usr/local/www/blog/index.html

Cualquier contenido servirá:

<h1>Blog de freebsd121.local</h1>

Y empezamos con lo interesante, el archivo de configuración de este servidor virtual, en el subdirectorio que preparamos al efecto:

$ sudo nano /usr/local/etc/nginx/sites.d/blog.conf

El contenido será este:

server {
        listen  80;
        server_name blog.freebsd121.local;
        location / {
                root /usr/local/www/blog;
        }
        error_log /var/log/nginx/blog.freebsd121.local-error.log;
        access_log /var/log/nginx/blog.freebsd121.local-access.log;
}

La explicación de esta configuración es sencilla:

  • Un bloque server que encierra la configuración del servidor virtual.
  • La directiva server_name en la que indicamos el dominio al que responderá el servidor virtual.
  • El bloque location /, que define las características de la raíz del directorio web (y su contenido).
  • La directiva root que indica la ruta del directorio web.
  • Y error_log y access_log que definen los archivos de registro de errores y accesos, respectivamente, para este servidor.

Dependiendo de las características de la aplicación web que instales, necesitarás ir afinando más o menos la configuración.

Guardados los cambios, hay que recargar la configuración de Nginx:

$ sudo service nginx reload

Y ahora podemos acceder al servicio web de la máquina FreeBSD 12.1 mediante su dirección IP, dominio principal y subdominio:

como configurar el servidor web nginx en freebsd 12.1

Para servidores virtuales adicionales, sólo tendrás que repetir el proceso:

  • Configurar el dominio apuntándolo al servidor FreeBSD 12.1
  • Crear el directorio web para el servidor virtual.
  • Añadir el archivo de configuración personalizado en sites.d/.
  • Recargar el servicio para actualizar la configuración.

Cómo configurar Nginx con seguridad SSL en FreeBSD 12.1

Hoy día casi es un requisito obligatorio ofrecer tu contenido web mediante conexiones seguras con protocolo SSL, así que vamos a ver cómo configurar Nginx con seguridad SSL en FreeBSD 12.1.

En primer lugar debemos instalar los archivos de la clave RSA y su certificado que vamos a utilizar. Si no tenemos, podemos crear e instalar certificados autofirmados fácilmente para pruebas o nuestra red local.

Crearemos un directorio donde alojar estos archivos:

$ sudo mkdir /usr/local/etc/nginx/certs.d

Y creamos los archivos, para el dominio del servidor web por defecto y para los dominios de los servidores virtuales adicionales:

$ sudo openssl req -newkey rsa:2048 -x509 -nodes -days 3560 -out /usr/local/etc/nginx/certs.d/freebsd121.local.crt -keyout /usr/local/etc/nginx/certs.d/freebsd121.local.key

Al contestar el cuestionario es muy importante introducir en «Common Name» el dominio o subdominio para el que estamos creando el certificado:

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

Terminado el proceso, se repetiría para el resto de servidores virtuales, cambiando los nombres de los archivos de claves y certificados, y los dominios.

Editaremos el archivo de configuración del servidor para modificar el bloque server, que ahora incluirá la configuración SSL. Si se trata del servidor por defecto editamos nginx.conf y si es un servidor virtual adicional, editamos su archivo de configuración en sites.d/.

Trabajaremos en este caso sobre el servidor por defecto (nginx.conf). En el bloque server añadimos estas líneas:

server {
...
        listen 443 ssl;
...
        ssl_certificate /usr/local/etc/nginx/certs.d/freebsd121.local.crt;
        ssl_certificate_key /usr/local/etc/nginx/certs.d/freebsd121.local.key;
...
}

En el caso del archivo de configuración del servidor virtual del ejemplo anterior, quedaría así:

server {
        listen  80;
        listen 443 ssl;
        server_name blog.freebsd121.local;

        ssl_certificate /usr/local/etc/nginx/certs.d/blog.freebsd121.local.crt;
        ssl_certificate_key /usr/local/etc/nginx/certs.d/blog.freebsd121.local.key;

        location / {
                root /usr/local/www/blog;
        }
        error_log /var/log/nginx/blog.freebsd121.local-error.log;
        access_log /var/log/nginx/blog.freebsd121.local-access.log;
}

Guardamos los cambios, recargamos la configuración de Nginx y probamos a acceder con las URLs anteriores, pero esta vez indicando https:// en lugar de http:// como suele ser habitual:

nginx en freebsd 12.1

Si usamos certificados autofirmados nos encontraremos con que el navegador nos avisa de que le resulta imposible verificar la autenticidad del certificado. lo que es totalmente normal. Con certificados firmados por autoridades certificadoras no pasaría.

En cualquier caso, todos los navegadores dan opciones a aceptar los «riesgos» y continuar accediendo al sitio:

Y ya tenemos las conexiones cifradas con protocolo HTTPS.

Se haría el mismo proceso para cada servidor virtual.

Conclusión

Así de sencillo es instalar y configurar el servidor web Nginx en FreeBSD 12.1, un servidor rápido y potente con el que tu servidor o VPS FreeBSD alcanzarán el máximo rendimiento ofreciendo sitios y aplicaciones web.

Si tienes dudas, preguntas, sugerencias, quizás alguna corrección, puedes dejar un comentario.

¡Apoya este sitio!

¿Te ha servido esta guía de instalación y configuración del servicio web Nginx? Si es así y te apetece agradecérnoslo, la más mínima aportación para el mantenimiento de más guías y tutoriales de FreeBSD 12.1 y Nginx sirve de mucho. ¡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