Cómo instalar bloques de servidor Nginx (hosts virtuales) en Ubuntu 16.04 - 17.10

27 feb 2021 3 min di lettura
Cómo instalar bloques de servidor Nginx (hosts virtuales) en Ubuntu 16.04 - 17.10
Indice dei contenuti

Prerrequisitos

Siga esta guía para instalar Nginx - MySQL - PHP: Cómo instalar LEMP Nginx MySQL PHP en Ubuntu 16.04-17.10

Configuración de bloques de servidor

Por defecto, Nginx Ubuntu solo tiene un bloque de servidor. Está configurado para usar archivos en el directorio /var /www /html.

Necesitamos directorios adicionales si queremos configurar más sitios.

Creamos una estructura dentro de /var /www para cada uno de nuestros sitios. El contenido web se colocará en un directorio html.

Desde la consola:

sudo mkdir -p /var/www/esempio.com/html
sudo mkdir -p /var/www/test.com/html

Podemos usar la variable $ USER para asignar los permisos necesarios a la cuenta en la que estamos conectados actualmente (asegúrese de que no ha iniciado sesión como root). Esto nos permitirá crear o modificar fácilmente el contenido de este directorio:

sudo chown -R $USER:$USER /var/www/esempio.com/html
sudo chown -R $USER:$USER /var/www/test.com/html

Asegurémonos de que los permisos sean correctos:

sudo chmod -R 755 /var/www

Creación de página de muestra

Creemos un archivo index.html para el primer dominio:

sudo nano /var/www/esempio.com/html/index.html

Peguemos el siguiente código de muestra:


<html>
 <head>
 <title>Benvenuto, esempio.com</title>
 </head>
 <body>
 <h1>Il dominio esempio.com è funzionante!</h1>
 </body>
 </html>

Guarde y cierre el archivo.

Creemos la segunda página de ejemplo, copiando la primera en el otro directorio raíz.

sudo cp /var/www/esempio.com/html/index.html /var/www/test.com/html/

Abramos el archivo:

sudo nano /var/www/test.com/html/index.html

Editemos el archivo:


<html>
 <head>
 <title>Benvenuto, test.com</title>
 </head>
 <body>
 <h1>Il dominio test.com è funzionante!</h1>
 </body>
 </html>

Guarde y cierre el archivo.

Crea un nuevo bloque de servidor para Nginx

Como se mencionó anteriormente, Nginx usa solo un bloque de servidor de forma predeterminada. Así que copiemos el existente y luego editamos:

sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/esempio.com

Abre el archivo:

sudo nano /etc/nginx/sites-available/esempio.com

Elimine la opción default_server, ya que solo un bloque de servidor puede usar esta opción.


server {
 listen 80 default_server;
 listen [::]:80 default_server;...
 }

Entonces cambia así:


server {
 listen 80;
 listen [::]:80;...
 }

También cambie la raíz raíz principal /var/www/example.com/html; El resultado será este:


server {
 listen 80;
 listen [::]:80;

 root /var/www/esempio.com/html;
 index index.html index.htm index.nginx-debian.html;

 server_name esempio.com www.esempio.com;

 location /{
 try_files $uri $uri/=404;
 }
 }

Crea el segundo bloque de servidor

Copiemos el archivo creado anteriormente y cambiemos los parámetros necesarios:

sudo cp /etc/nginx/sites-available/esempio.com /etc/nginx/sites-available/test.com

Abre el archivo:

sudo nano /etc/nginx/sites-available/test.com

Cámbielo así:


server {
 listen 80;
 listen [::]:80;

 root /var/www/test.com/html;
 index index.html index.htm index.nginx-debian.html;

 server_name test.com www.test.com;

 location /{
 try_files $uri $uri/=404;
 }
 }

Habilitar bloques de servidor

Habilitamos los nuevos bloques de servidor creando enlaces simbólicos al directorio habilitado para sitios, que Nginx usa durante la fase de inicio.

sudo ln -s /etc/nginx/sites-available/esempio.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

Para evitar problemas de memoria debido a la adición de nuevos bloques de servidor, modificamos un parámetro dentro de nginx.conf

sudo nano /etc/nginx/nginx.conf

Busque y elimine el comentario del siguiente parámetro eliminando el símbolo # antes de la opción server_names_hash_bucket_size.


http {...

 server_names_hash_bucket_size 64;...
 }

Comprobemos si las configuraciones son correctas:

sudo nginx -t

Si no ha encontrado ningún problema, reinicie nginx:

sudo systemctl restart nginx

Edite el archivo de hosts locales para una prueba (opcional)

Si no ha utilizado sus propios nombres de dominio y en su lugar ha utilizado valores ficticios, puede modificar la configuración de su computadora local para permitirle probar temporalmente la configuración de los bloques de servidor Nginx recién configurados.

Esto no permitirá que otros visitantes vean su sitio correctamente, pero le dará la posibilidad de acceder a los sitios de forma independiente y probar su configuración. Nota Asegúrese de estar operando en su computadora local durante estos pasos y no en su servidor VPS. Necesitará tener acceso de root, ser miembro del grupo administrativo o de otra manera poder modificar los archivos del sistema para hacerlo.

Abra el archivo de hosts:

sudo nano /etc/hosts

Debe conocer la dirección IP pública del servidor y los dominios que desea apuntar al servidor. Suponiendo que la dirección IP pública es, por ejemplo, 11.11.11.11, edite el archivo de esta manera:


127.0.0.1 localhost...

 11.11.11.11 esempio.com www.esempio.com
 11.11.11.11 test.com www.test.com

Prueba

Ahora que todo está listo, debemos verificar que los bloques del servidor estén funcionando correctamente. Puede hacerlo visitando los dominios en su navegador:


http://esempio.com

 http://test.com

Si ambos sitios funcionan, ha configurado correctamente dos bloques de servidor independientes con Nginx.

Si ha editado el archivo de hosts en su computadora local para probar los sitios recién creados, simplemente puede eliminar las últimas líneas agregadas para restaurarlo.

Support us with a

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.