como instalar nginx en freebsd 12

Cómo instalar Nginx en FreeBSD 12

En esta ocasión vamos a ver cómo instalar Nginx en FreeBSD 12 paso a paso. Este es uno de los servidores web más usados en Internet por su rapidez y ligereza. Al final de esta guía tendrás funcionando Nginx en tu servidor o VPS FreeBSD incluyendo servidores virtuales y seguridad SSL a través de HTTPS.

Antes de instalar Nginx en FreeBSD 12

Para seguir esta guía de instalación de Nginx en FreeBSD 12 se necesitan unos pequeños requisitos:

  • Una máquina FreeBSD 12 actualizada.
  • Acceso por consola como root o usuario con privilegios de sudo.
  • Conexión a Internet.

Seguramente estás consultando esta guía porque ya cumples estos puntos, así que vamos a abrir una terminal y ponernos a trabajar.

Cómo instalar Nginx en FreeBSD 12

Para instalar Nginx en FreeBSD 12 descargaremos el software necesario desde los repositorios de FreeBSD, con el comando pkg.

En primer lugar, como siempre que vamos a instalar nuevos componentes, haremos una actualización del sistema:

$ sudo pkg update

Una vez puesta al día la información de los repositorios es aconsejable actualizar los paquetes que tengan nuevas versiones:

$ sudo pkg upgrade

Y ya podemos instalar el paquete nginx y todas sus dependencias:

$ sudo pkg -y install nginx

Rápidamente se descargarán, descomprimirán e instalarán tanto Nginx como sus dependencias.

Cómo iniciar Nginx en FreeBSD 12

Nginx ya se encuentra instalado en el sistema, concretamente a través del servicio nginx. Sin embargo no está iniciado ni activado (no inicia con el arranque de FreeBSD).

Podemos comprobarlo con el parámetro onestatus de service (status no sirve porque el servicio no está activado):

$ service nginx onestatus
nginx is not running.

Como lo normal es querer que el servicio web arranque con el sistema, la primera tarea será activarlo. Lo hacemos con el comando service:

$ sudo service nginx enable
nginx enabled in /etc/rc.conf

Ya podemos usar los parámetros de service sin que empiecen por one, al estar el servicio activado. Así que ahora vamos a iniciar Nginx, también con service:

$ sudo service nginx start
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
Starting nginx.

Para comprobar que efectivamente el servicio web está en ejecución lo comprobaremos con la opción status de service:

$ service nginx status
nginx is running as pid 909.

Perfecto, el servidor web Nginx está funcionando y listo para aceptar conexiones.  Pero seguro que queremos comprobarlo más empíricamente aún, así que vamos a probar desde un navegador de otra máquina de la red local, usando como URL la dirección IP de nuestra máquina FreeBSD 12:

como instalar el servidor web nginx en freebsd 12
Comprobación de la instalación de Nginx en FreeBSD 12

Efectivamente, nuestra máquina FreeBSD 12 está sirviendo contenido a través del servicio Nginx.

Cómo configurar Nginx en FreeBSD 12

Lo primero que debemos saber a la hora de configurar Nginx en FreeBSD es que la ruta principal de configuración es /usr/local/etc/nginx/. Es importante resaltar esto para aquellos que no estén muy familiarizados en configurar sistemas FreeBSD.

Por tanto, el archivo principal de configuración, nginx.conf, será accesible como /usr/local/etc/nginx/nginx.conf.

Datos que podríamos averiguar examinando el contenido del archivo de configuración es que el sitio web por defecto (que acabamos de ver en el navegador) está en /usr/local/www/nginx/, lo que ya nos da una pista de que un buen lugar para nuestros proyectos web podría ser /usr/local/www/.

Hagamos una prueba rápida creando una ruta para un nuevo sitio web por defecto en /usr/local/www/pruebas/:

$ sudo mkdir /usr/local/www/pruebas/

Y creamos un archivo web con un contenido mínimo:

$ sudo nano /usr/local/www/pruebas/index.html

Como contenido podemos poner cualquier cosa:

<h1>Servidor Nginx sobre FreeBSD 12 en pruebas</h1>

Ahora editamos el archivo de configuración principal de Nginx, ngnix.conf, para cambiar la ubicación del nuevo sitio web por defecto:

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

Buscaremos dentro del bloque http el primer bloque server y dentro de este el bloque location:

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

La directiva root indica la ruta del directorio de archivos web del servidor, así que sólo tendríamos que editar esta línea e indicar la nueva ruta que acabamos de preparar:

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

Una vez guardados los cambios y de vuelta a la línea de comandos, hay que recargar la configuración de Nginx para que la nueva configuración funcione:

$ sudo service nginx reload
Performing sanity check on nginx configuration:
nginx: the configuration file /usr/local/etc/nginx/nginx.conf syntax is ok
nginx: configuration file /usr/local/etc/nginx/nginx.conf test is successful
$

Y accedemos de nuevo a través del navegador al servidor:

como configurar el servidor web nginx en freebsd 12

Justo lo que esperábamos. Ya sabes cómo hacer cambios de configuración y activar los cambios. Vamos a ver algunas cosas más.

Servidores virtuales de Nginx en FreeBSD 12

Una de las características más apreciadas y valiosas de un servidor web cuando tienes un servidor o VPS FreeBSD es la capacidad de servidores virtuales. Como no podía ser de otra forma, Nginx nos ofrece también esta potentísima característica, con la que podremos ofrecer distintos sitios web con distintos dominios en el mismo servidor FreeBSD.

Obviamente, si vas a configurar un servidor virtual para un dominio, necesitarás tener un dominio registrado y apuntando a tu máquina FreeBSD.

Si aún no has registrado el dominio, me atrevo a recomendarte Namecheap, que es donde registro y renuevo los dominios de todos mis sitios web, como el que estás visitando en este momento.

Siguiendo con la guía, crearé un servidor virtual para el dominio freebsd12.comoinstalar.me. Este dominio ya apunta a mi máquina FreeBSD, por lo que si accedo a él a través de un navegador mostrará la página por defecto de Nginx.

En primer lugar, crearemos la ruta y contenido web para este servidor web. Aunque la ruta podría colgar de /usr/local/www/ en esta ocasión prefiero usar el directorio personal de mi usuario de trabajo:

$ mkdir -p ~/public_html/freebsd12.comoinstalar.me

Dentro de esa ruta añadiremos el contenido web que queramos, como puede ser un archivo index.html de pruebas.

Es el momento de configurar el nuevo servidor web. Esto se puede hacer fácilmente, editando el archivo de configuración de Nginx y añadiendo dentro y al final del bloque http un nuevo bloque server. Es decir, tenemos esto al final del archivo de configuración:

    #    }
    #}
}

Las dos líneas con el carácter # son el final de un bloque server de ejemplo, y el cierre de llave final es el cierre del bloque http. Justo antes de esa llave añadimos un nuevo bloque server para nuestro servidor virtual, tal como este:

    #    }
    #}
        server {
                listen  80;
                server_name freebsd12.comoinstalar.me;
                location / {
                        root /home/USUARIO/public_html/freebsd12.comoinstalar.me;
                        index index.html index.htm;
                }
                error_log /var/log/nginx/freebsd12.comoinstalar.me-error.log;
                access_log /var/log/nginx/freebsd12.comoinstalar.me-access.log;
        }
}

Aunque la sintaxis del bloque es bastante intuitiva, te detallo el significado de cada directiva para que se entienda mejor.

listen

Indica el puerto en el que escuchará el servidor virtual, siendo 80 el puerto estándar del servicio HTTP.

server_name

Especifica el dominio al cual responderá el servidor virtual.

location

Es un bloque dentro del cual aplicaremos configuraciones personalizadas. Al indicar / nos referimos a la raíz del sitio web y su contenido.

root

El directorio donde se aloja el contenido web del servidor virtual.

index

El archivo por defecto que se entrega si no se especifica ninguno en la URL. Normalmente es index.html, index.htm, default.html, etc.

error_log

El registro de errores personalizado para este servidor web. Si las cosas no funcionan como esperabas, consulta las últimas líneas de este archivo, por si contienen mensajes de error informativos.

access_log

El registro de acceso personalizado para este servidor web. Contiene el registro de peticiones a este servidor.

Recargando la configuración del servicio nginx ya podremos acceder a la página personalizada para el dominio:

servidores virtuales nginx en freebsd 12

En este momento tenemos funcionando la página por defecto del servidor y un servidor virtual para un dominio.

Repitiendo el proceso (añadiendo más bloques server) podremos tener tantos servidores virtuales como dominios necesitemos configurar.

Seguridad SSL por HTTPS en Nginx para FreeBSD 12

Si tenemos un certificado SSL instalado en el sistema, ya sea autofirmado o generado por una autoridad certificadora, podemos emplearlo para para conectar a través de HTTPS al servidor web.

Para el ejemplo que estamos siguiendo en esta guía, tenemos un certificado asociado al dominio del ejemplo, freebsd12.comoinstalar.me, instalado bajo la ruta /usr/local/etc/letsencrypt/live/freebsd12.comoinstalar.me/.

Vamos a configurar este certificado, para lo que editamos el archivo de configuración de Nginx y añadimos algunas directivas en el bloque server correpondiente al servidor virtual del dominio que queremos configurar:

server {
        listen  80;
        listen 443 ssl;
        server_name freebsd12.comoinstalar.me;
        ssl_certificate /usr/local/etc/letsencrypt/live/freebsd12.comoinstalar.me/cert.pem;
        ssl_certificate_key /usr/local/etc/letsencrypt/live/freebsd12.comoinstalar.me/privkey.pem;
        location / {
                root /home/chacho/public_html/freebsd12.comoinstalar.me;
                index index.html index.htm;
        }
        error_log /var/log/nginx/freebsd12.comoinstalar.me-error.log;
        access_log /var/log/nginx/freebsd12.comoinstalar.me-access.log;
}

Hemos añadido una directiva listen en la que se indica el puerto estándar del protocolo HTTPS (443) indicando que se use este protocolo (ssl).

Además hemos añadido las directivas ssl_certificate y ssl_certificate_key en las que indicamos las rutas del certificado y su clave privada.

Guardamos los cambios y recargamos la configuración del servicio web.

Para comprobar el funcionamiento del servicio, accedemos una vez más al dominio que estamos configurando, pero usando https:// en lugar de http://:

certificados ssl en nginx para freebsd 12

Y deberíamos acceder a la primera, sin nigún tipo de advertencia o mensaje de error (a no ser que estemos usando certificados autofirmados, no emitidos por autoridades certificadoras).

Conclusión

Ahora ya sabes cómo instalar Nginx en FreeBSD 12. Siguiendo esta guía serás capaz de usar tu servidor o VPS FreeBSD para poder alojar tantas aplicaciones y sitios web como necesites, usando dominios distintos y proporcionando seguridad SSL. ¡Escálalo cuanto necesites!

En sucesivas entradas veremos cómo ampliar la potencia de este servidor con Nginx.

Para cualquier duda, sugerencia, error o consulta, puedes dejar un comentario.

¡Apoya este sitio!

Si creías que instalar y configurar Nginx en FreeBSD 12 sería una locura ya has comprobado que no es así. Si no puedes evitar un irrefrenable deseo de agradecérnoslo, puedes contribuir mínimamente al mantenimiento de este sitio… ¡Gracias!

Valora esta entrada

1 estrella2 estrellas3 estrellas4 estrellas5 estrellas (2 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