Cómo configurar hosts virtuales basados ​​en nombres y basados ​​en IP (bloques de servidor) con Nginx

Cómo configurar hosts virtuales basados ​​en nombres y basados ​​en IP (bloques de servidor) con Nginx

En un período de tiempo relativamente corto desde que fue desarrollado y puesto a disposición (un poco más de 10 años), Nginx ha experimentado un crecimiento sostenido y constante entre los servidores web debido a su alto rendimiento y bajo uso de memoria.

Hosting virtual basado en nombres de Nginx y basado en IP

Desde Nginx Software de código abierto y gratuito, ha sido adoptado por miles de administradores de servidores web en todo el mundo, no solo en servidores Linux y *nix, sino también en Microsoft Windows.

No te pierdas: Hosting virtual basado en nombre de Apache y IP basado en IP

Para aquellos de nosotros más solidos apache, Nginx Puede tener una curva de aprendizaje algo empinada (al menos ese fue mi caso), pero ciertamente vale la pena una vez que cree un par de sitios y comience a ver las estadísticas de uso de tráfico y recursos.

En este artículo explicaremos cómo usar Nginx para configurar basado en el nombre y basado en IP alojamiento virtual en Cento/Rhel 7 servidores y Debian 8 y derivados, comenzando con Ubuntu 15.04 y sus spin-offs.

Nuestro escenario de prueba para este artículo es el siguiente:

  1. Sistema operativo: Debian 8 Jessie Server [IP 192.168.0.25]
  2. Puerta: Router [IP 192.168.0.1]
  3. Servidor web: Nginx 1.6.2-5
  4. Dominio ficticio: www.tecmintlovesnginx.com y www.nginxmeanspower.comunicarse.

Instalación del servidor web Nginx

Si aún no lo ha hecho, instale nginx antes de continuar. Si necesita ayuda para comenzar, una búsqueda rápida de NGINX en este sitio devolverá varios artículos sobre este tema. Haga clic en el icono de lupa en la parte superior de esta página y busque la palabra clave nginx. Si no sabe cómo buscar artículos en este sitio, no se preocupe aquí, hemos agregado enlaces a los artículos Nginx, simplemente revise e instálelo según sus respectivas distribuciones de Linux.

  1. Instalar y compilar Nginx de fuentes en Rhel/Centos 7
  2. Instale el servidor web Nginx en Debian 8
  3. Instale Nginx con MariadB y PHP/PHP-FPM en Fedora 23
  4. Instale el servidor web Nginx en Ubuntu 15.10 servidor/escritorio
  5. Password Protect Nginx Directorios de sitios web

Luego prepárate para continuar con el resto de este tutorial.

Creación de hosts virtuales basados ​​en nombres en Nginx

Como estoy seguro de que ya sabe, un host virtual es un sitio web que Nginx es atendido en un solo vicepresidente de nube o servidor físico. Sin embargo, en los documentos de Nginx encontrará el término "Bloques de servidor" en su lugar, pero son básicamente lo mismo llamado por diferentes nombres.

El primer paso para configurar hosts virtual es crear uno o más bloques de servidor (en nuestro caso, crearemos dos, uno para cada dominio ficticio) en el archivo de configuración principal (/etc/nginx/nginx.confusión) o dentro /etc/nginx/sitios disponible.

Aunque el nombre de los archivos de configuración en este directorio (Sitios disponibles) se puede configurar en lo que desee, es una buena idea usar el nombre de los dominios, y además elegimos agregar el .confusión Extensión para indicar que estos son archivos de configuración.

Estos bloques de servidor pueden ser relativamente complejos, pero en su forma básica consisten en el siguiente contenido:

En /etc/nginx/sites disponible/tecMintlovesnginx.comunicarse.confusión:

servidor escuchar 80; server_name tecMintlovesnginx.com www.tecmintlovesnginx.com; access_log/var/www/logs/tecMintlovesnginx.acceso.registro; Error_log/var/www/logs/tecMintlovesnginx.error.error de registro; root/var/www/tecMintlovesnginx.com/public_html; índice índice.índice HTML.htm;  

En /etc/nginx/sitios disponible/nginxmeanspower.comunicarse.confusión:

servidor escuchar 80; server_name nginxmeanspower.com www.nginxmeanspower.com; access_log/var/www/logs/nginxmeanspower.acceso.registro; Error_log/var/www/logs/nginxmeanspower.error.error de registro; root/var/www/nginxmeanspower.com/public_html; índice índice.índice HTML.htm;  

Puede usar los bloques anteriores para comenzar a configurar sus hosts virtuales, o puede crear los archivos con el esqueleto básico desde /etc/nginx/sites disponible/predeterminado (Debian) o /etc/nginx/nginx.confusión.por defecto (Cento).

Una vez copiado, cambie sus permisos y propiedad:

# CHMOD 660/ETC/NGINX/SITES-AVAVABLE/TECMINTLOVESNGINX.comunicarse.conf # chmod 660/etc/nginx/sites disponible/nginxmeanspower.comunicarse.confusión 

Debian y derivados

# chgrp www-data/etc/nginx/sites-disponible/tecMintlovesnginx.comunicarse.conf # chgrp www-data/etc/nginx/sites-disponible/nginxmeanspower.comunicarse.confusión 

CentOS y RHEL

# chgrp nginx/etc/nginx/sites-disponible/tecMintlovesnginx.comunicarse.conf # chgrp nginx/etc/nginx/sites-disponible/nginxmeanspower.comunicarse.confusión 

Cuando haya terminado, debe eliminar el archivo de muestra o renombrarlo a otra cosa para evitar confusiones o conflictos.

Tenga en cuenta que también necesitará crear el directorio para los registros (/var/www/registros) y darle al usuario de Nginx (nginx o datos www, Dependiendo de si está ejecutando CentOS o Debian) lea y escribe permisos sobre él:

# mkdir/var/www/logs # chmod -r 660/var/www/logs # chgrp/var/www/logs 

Los hosts virtuales ahora deben habilitarse creando un enlace simbólico a este archivo en el directorio habilitado para sitios:

# ln -s/etc/nginx/sites -disponible/tecMintlovesnginx.comunicarse.conf/etc/nginx/sites-habilitado/tecMintlovesnginx.comunicarse.conf # ln -s/etc/nginx/sites disponible/nginxmeanspower.comunicarse.conf/etc/nginx/sites-habilitado/nginxmeanspower.comunicarse.confusión 

A continuación, cree un archivo HTML de muestra llamado índice.html adentro /var/www // public_html para cada uno de los hosts virtuales (reemplace según sea necesario). Modifique el siguiente código según sea necesario:

    Tecmint ama a Nginx   

Tecmint ama a Nginx!

Finalmente, pruebe la configuración de Nginx e inicie el servidor web. Si hay algún error en la configuración, se le solicitará que corregiran:

# nginx -t && systemctl iniciar nginx 
Verifique la configuración de Nginx

y agregue las siguientes entradas a su /etc/huéspedes Archivo en su máquina local como estrategia de resolución de nombre básico:

192.168.0.25 tecMintlovesnginx.com 192.168.0.25 nginxmeanspower.comunicarse 

Luego inicie un navegador web y vaya a las URL enumeradas anteriormente:

Verifique los hosts virtuales basados ​​en el nombre de Nginx

Para agregar más hosts virtuales en Nginx, simplemente repita los pasos descritos arriba tantas veces como sea necesario.

Hosts virtuales basados ​​en IP en Nginx

Opuesto a basado en el nombre Hosts virtuales donde se pueden acceder a todos los hosts a través de la misma dirección IP, Basado en IP Los hosts virtuales requieren una IP: puerto combinación cada uno.

Esto permite que el servidor web devuelva diferentes sitios dependiendo de la dirección IP y el puerto donde se reciba la solicitud en. Dado que los hosts virtuales basados ​​en su nombre nos dan la ventaja de compartir una dirección IP y un puerto, son el estándar para los servidores web de uso general y deberían ser la configuración de elección a menos que su versión instalada de NGINX no admita Indicación del nombre del servidor (SNI), ya sea porque es una versión realmente desactualizada, o porque fue compilada sin el -con http_ssl_module opción de compilar.

Si,

# nginx -v 

No devuelve las opciones resaltadas a continuación:

Verifique la versión y los módulos de Nginx

Deberá actualizar su versión de NGINX o recompilarla, dependiendo de su método de instalación original. Para compilar NGINX, siga el siguiente artículo:

  1. Instalar y compilar Nginx de fuentes en Rhel/Centos 7

Suponiendo que estamos listos, debemos tener en cuenta que otro requisito previo para Basado en IP Los hosts virtuales es la disponibilidad de IP separadas, ya sea asignándolos a distintas interfaces de red o mediante el uso de IP virtuales (también conocidas como alias de IP).

Para realizar alias de IP en Debian (suponiendo que estés usando eth0), editar /etc/red/interfaces como sigue:

Debian y derivados

Auto Eth0: 1 Iface Eth0: 1 Inet Dirección estática 192.168.0.25 Netmask 255.255.255.0 red 192.168.0.0 Broadcast 192.168.0.255 Gateway 192.168.0.1 Auto Eth0: 2 Iface Eth0: 2 Inet Dirección estática 192.168.0.26 Netmask 255.255.255.0 red 192.168.0.0 Broadcast 192.168.0.255 Gateway 192.168.0.1 

En el ejemplo anterior creamos dos NIC virtuales de eth0: eth0: 1 (192.168.0.25) y eth0: 2 (192.168.0.26).

CentOS y RHEL

En CentOS, renombrar /etc/sysconfig/network-scripts/ifcfg-enp0s3 como IFCFG-ENP0S3: 1 y hacer una copia como IFCFG-ENP0S3: 2, Y luego simplemente cambie las siguientes líneas, respectivamente:

Dispositivo = "Enp0s3: 1" iPaddr = 192.168.0.25 

y

Dispositivo = "Enp0s3: 2" iPaddr = 192.168.0.26 

Una vez hecho, reinicie el servicio de red:

# SystemCTL reiniciar las redes 

A continuación, realice los siguientes cambios en los bloques del servidor definidos previamente en este artículo:

En /etc/nginx/sites disponible/tecMintlovesnginx.comunicarse.confusión:

Escucha 192.168.0.25:80 

En /etc/nginx/sitios disponible/nginxmeanspower.comunicarse.confusión:

Escucha 192.168.0.26:80 

Finalmente, reinicie Nginx para que los cambios entren en vigencia.

# SystemCTL reiniciar nginx 

y no olvides actualizar tu local /etc/huéspedes respectivamente:

192.168.0.25 tecMintlovesnginx.com 192.168.0.26 NginxMeanspower.comunicarse 

Por lo tanto, cada solicitud hecha a 192.168.0.25 y 192.168.0.26 en el puerto 80 Volverá tecmintlovesnginx.comunicarse y nginxmeanspower.comunicarse, respectivamente:

Verifique el host virtual basado en Nginx IP

Como puede ver en las imágenes de arriba, ahora tiene dos hosts virtuales basados ​​en IP que usan la única NIC en su servidor con dos alias IP diferentes.

Resumen

En este tutorial hemos explicado cómo configurar ambos basado en el nombre y Basado en IP Hosts virtuales en Nginx. Aunque probablemente desee usar la primera opción, es importante saber que la otra opción sigue ahí si la necesita, solo asegúrese de tomar esta decisión después de considerar los hechos descritos en esta guía.

Además, es posible que desee marcar los documentos de Nginx, ya que es digno y bueno referirse a ellos a menudo mientras crea bloques de servidor (allí lo tiene, estamos hablando en el idioma Nginx ahora) y configurándolos. No creerá todas las opciones disponibles para configurar y sintonizar este servidor web sobresaliente.

Como siempre, no dude en enviarnos una línea utilizando el formulario a continuación si tiene alguna pregunta o comentario sobre este artículo. Esperamos tener noticias suyas, y sus comentarios sobre esta guía son bienvenidos.