En el post anterior explicamos cómo crear Apache virtualhost en CentOS 8. Esta vez es el turno de hacer lo mismo con Nginx. Entonces, esta publicación trata sobre la configuración de Nginx Virtualhosts en CentOS 8.
La única precaución que debemos tener es que el término Virtualhost se usa para Apache y, en cambio, Nginx es Server Blocks. Aunque en teoría es lo mismo, es bueno saber esto.
Instalar el servidor web Nginx en CentOS 8/Rocky Linux 8
Comenzamos con una instalación limpia de CentOS 8, por lo que el primer paso es actualizar el servidor.
sudo dnf update
Luego, instale Nginx desde los repositorios oficiales ejecutando el siguiente comando
sudo dnf install nginx
Cuando se completa la instalación, puede iniciar el servicio.
sudo systemctl start nginx
También es recomendable iniciar nginx junto con el sistema.
sudo systemctl enable nginx
Después de esto, puede verificar el estado del servicio
sudo systemctl status nginx
Solo necesitamos abrir los puertos necesarios en el firewall, que son 80
y 443
.
sudo firewall-cmd --add-port=80/tcp
sudo firewall-cmd --add-port=443/tcp
sudo firewall-cmd --reload
Y abre un navegador web y visita http://your-server-ip
y verás esta pantalla.

Esto indica que Nginx está instalado y ejecutándose en el sistema.
Creación de hosts virtuales nginx en CentOS 8
Para este caso vamos a utilizar el dominio cia.unixcop.com
pero puede ser tuyo.
Para trabajar de una forma más ordenada, se recomienda que creemos una carpeta dedicada a nuestro sitio. El nombre de la carpeta no tiene que ver, pero es recomendable que sea una referencia al sitio.
sudo mkdir -p /var/www/cia.unixcop.com
Haz que Nginx sea el propietario de la carpeta para evitar problemas
sudo chown -R nginx: /var/www/cia.unixcop.com
Después de esto, agregue un archivo HTML de prueba
sudo nano /var/www/cia.unixcop.com/index.html
Con el siguiente contenido
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Welcome</title>
</head>
<body>
<h1>Hello, welcome to this site!!!!</h1>
</body>
</html>
Guarde los cambios y cierre el editor.
Cada Virtualhost o Server Block tiene un archivo de configuración que debemos crear. Estas configuraciones varían de un sitio a otro y depende del administrador.
Estos archivos de configuración deben estar en el directorio /etc/nginx/conf.d/
Una vez más, el nombre no importa mucho, pero hazlo descriptivo.
sudo nano /etc/nginx/conf.d/cia.unixcop.com.conf
y agrega lo siguiente:
server {
listen 80;
listen [::]:80;
root /var/www/cia.unixcop.com;
index index.html;
server_name cia.unixcop.com;
access_log /var/log/nginx/cia.unixcop.com.access.log;
error_log /var/log/nginx/cia.unixcop.com.error.log;
}
Recuerde modificar server_name
a su nombre de dominio. También modifica lo que creas conveniente.
Guarde los cambios y cierre el editor.
Puede verificar si hay errores con la línea de comando.
sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Si todo va bien, podemos aplicar los cambios reiniciando el servicio.
sudo systemctl restart nginx
Solo queda abrir un navegador web y visitar su dominio para ver el archivo.

Entonces, todo está bien. Eso es todo por hoy.
Conclusión
En este post aprendiste a crear Nginx Virtualhosts en CentOS 8 / Rocky Linux 8 en un proceso sencillo que hará que tengamos varios sitios ejecutándose en nuestro servidor.