Este artículo le muestra cómo crear hosts virtuales NGINX® que sirvan a varios dominios web.
Crea el diseño para cada dominio
Este ejemplo crea dos dominios, domain1.com
y domain2.com
.
Debido a que los permisos predeterminados solo lo habilitan a usted, la demo
usuario, para explorar su carpeta de inicio, también debe otorgar acceso a NGINX a esta carpeta ejecutando el siguiente comando:
chmod 755 /home/demo
Ahora puede crear el diseño básico para cada dominio. En tu home
directorio, crea un public_html
carpeta ejecutando el siguiente comando:
mkdir /home/demo/public_html
Para cada dominio que desee alojar, cree una carpeta con un conjunto estándar de subcarpetas, como se muestra en los siguientes ejemplos:
mkdir -p /home/demo/public_html/domain1.com/{public,private,,backup}
mkdir -p /home/demo/public_html/domain2.com/{public,private,log,backup}
Estos comandos crean las carpetas public
, private
, log
y backup
foreach de sus dominios.log
Agregue contenido público para el sitio web en domain1.com
Este ejemplo crea un archivo HTML muy simple en la carpeta pública que le permite comprobar rápidamente que el servidor virtual funciona.
Ejecute el siguiente comando para agregar contenido para domain1.com
:
nano /home/demo/public_html/domain1.com/public/index.html
Introduzca un código similar al siguiente ejemplo en el archivo:
<html>
<head>
<title>domain1.com</title>
</head>
<body>
<h1>domain1.com</h1>
</body>
</html>
Repita el proceso para que tenga un archivo de índice HTML similar para domain2.com
.
Nota :Asegúrese de cambiar el contenido en index.html archivo para mostrar domain2.com
y no domain1.com
.
Diseño de hosts virtuales
Este artículo usa un diseño de estilo CentOS® (que usa un conf.d
directorio para almacenar sus archivos de configuración) al crear los hosts virtuales. También puede tener este diseño si instaló NGINX mediante el administrador de paquetes o desde la fuente.
Agregue sus hosts virtuales al archivo virtual
Edite el archivo virtual para agregar domain1.com
ejecutando el siguiente comando:
sudo nano /etc/nginx/conf.d/virtual.conf
Nota :Asegúrese de ajustar la ruta de acuerdo con su instalación.
Si está instalando desde la fuente, debe ingresar la siguiente ruta:
sudo nano /usr/local/nginx/conf/conf.d/virtual.conf
Agregue el siguiente código al archivo:
server {
listen 80;
server_name www.domain1.com;
rewrite ^/(.*) https://domain1.com/$1 permanent;
}
server {
listen 80;
server_name domain1.com;
access_log /home/demo/public_html/domain1.com/log/access.log;
error_log /home/demo/public_html/domain1.com/log/error.log;
location / {
root /home/demo/public_html/domain1.com/public/;
index index.html;
}
}
El primer módulo de servidor en el archivo es una regla de reescritura simple que redirige a los visitantes a domain1.com
de www.domain1.com
.
El segundo módulo de servidor tiene información muy básica, incluido el server_name
, que es el nombre de dominio que desea servir.
Luego, el código define las ubicaciones de registro para que pueda encontrarlas fácilmente. Finalmente, establece la raíz del servidor y el archivo de índice.
Recargar NGINX
Para habilitar su sitio, vuelva a cargar NGINX ejecutando el siguiente comando:
sudo /etc/init.d/nginx reload
Ver tu sitio web
Navegue hasta su dominio pegando la siguiente URL en la barra de navegación de su navegador web:
https://www.dominio1.com
Debería ver una página web de prueba simple que muestra la información en el index.html archivo.
Verificar los registros
En un paso anterior, agregó código a virtual.conf archivo que configuró las ubicaciones de los registros. Ejecute los siguientes comandos para comprobar que ahora hay registros en esa ubicación:
ls /home/demo/public_html/domain1.com/log/
...
access.log error.log
Repetir para dominios adicionales
Repita el mismo proceso para su próximo servidor virtual, domain2.com
.