Apache crea la configuración del host virtual (según el nombre de dominio, el puerto y la IP)

marca

Introducción :

Un servidor web virtual se refiere a la ejecución de varios sitios web en el mismo servidor, cada uno de los cuales no ocupa todo el servidor de forma independiente, por lo que se denomina servidor web "virtual". Los servicios de alojamiento web virtual pueden hacer un uso completo de los recursos de hardware del servidor, lo que reduce en gran medida el costo de construcción y operación del sitio web.

El uso del servicio httpd puede ser muy conveniente para construir un servidor virtual, solo es necesario ejecutar un servicio httpd para admitir una gran cantidad de sitios web.

Los tipos de host virtual admitidos por el servicio httpd incluyen los tres siguientes:

Basado en el nombre de dominio : use un nombre de dominio diferente para cada host virtual, pero la dirección IP correspondiente es la misma;

Basado en la dirección IP : use diferentes nombres de dominio para cada host virtual, y sus correspondientes direcciones IP también son diferentes;

Basado en puerto : este método no usa nombres de dominio ni direcciones IP para distinguir el contenido de un sitio diferente, sino que usa puertos TCP diferentes. Por lo tanto, los usuarios deben especificar el número de puerto para acceder a diferentes sitios virtuales al mismo tiempo.

Entre estos tipos de hosts web virtuales, los hosts virtuales basados ​​en dominios son los más utilizados; los hosts virtuales basados ​​en IP y en puertos generalmente solo son adecuados para empresas internas.

Uno: Alojamiento web virtual

  • Ejecute varios sitios web en el mismo servidor, cada uno de los cuales no ocupa una computadora real de forma independiente

1.1: Pasos de implementación del host virtual basado en el host del nombre de dominio:

  • Proporcionar resolución de nombres de dominio para hosts virtuales

  • Primero, debe crear un servicio DNS para proporcionar resolución de nombres de dominio y crear un servicio DNS.

1.2: Tipos de hosts virtuales compatibles con httpd

  • Alojamiento virtual basado en nombres de dominio

  • Host virtual basado en la dirección IP

  • Alojamiento virtual basado en puertos

2: Cree un host virtual basado en dominio virtual

Pasos experimentales

Agregar dos tarjetas de red

IP es
20.0.0.41
20.0.0.50 respectivamente
marca

Configurar la información de la tarjeta de red

[root@localhost ~]# cd /etc/sysconfig/network-scripts/
[root@localhost network-scripts]# cp -p ifcfg-ens33 ifcfg-ens36
[root@localhost network-scripts]# vim ifcfg-ens36
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=staic
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens36
DEVICE=ens36
ONBOOT=yes
IPADDR=20.0.0.50
PREFIX=24
GATEWAY=20.0.0.2
DNS1=20.0.0.2

[root@localhost network-scripts]#systemctl start network   #重启网卡

Instalar Apache y servicio DNS

[root@localhost ~]# yum install bind httpd -y
...省略内容

Configurar DNS

  • /etc/named.conf ## Archivo de configuración principal
  • /etc/named.rfc1912.zones ## Archivo de configuración de zona
  • /var/named/named.localhost ## Archivo de configuración de datos regionales

Configure el archivo de configuración global de dns /etc/named.conf

[root@localhost ~]# vim /etc/named.conf
 11 
 12 options {
    
    
 13         listen-on port 53 {
    
     any; };  ##进来后把监听地址改为any
 14         listen-on-v6 port 53 {
    
     ::1; };
 15         directory       "/var/named";         ##目录
 16         dump-file       "/var/named/data/cache_dump.db";
 17         statistics-file "/var/named/data/named_stats.txt";
 18         memstatistics-file "/var/named/data/named_mem_stats.txt";
 19         recursing-file  "/var/named/data/named.recursing";
 20         secroots-file   "/var/named/data/named.secroots";
 21         allow-query     {
    
     any; };    ##把localhost改为any 任何都可以访问地址

Configurar perfil de zona

[root@localhost ~]# vim /etc/named.rfc1912.zones
zone "abc.com" IN {
    
    
        type master;
        file "abc.com.zone";
        allow-update {
    
     none; };
};
zone "dba.com" IN {
    
    
        type master;
        file "dba.com.zone";
        allow-update {
    
     none; };
};

Configurar archivo de datos de zona

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
benet.com.zone  dynamic       named.ca     named.localhost  slaves
data            kgc.com.zone  named.empty  named.loopback
[root@localhost named]# cp -p named.localhost abc.com.zone
[root@localhost named]# vim abc.com.zone 
$TTL 1D
@       IN SOA  @ rname.invalid. (
                                        0       ; serial
                                        1D      ; refresh
                                        1H      ; retry
                                        1W      ; expire
                                        3H )    ; minimum
        NS      @
        A       127.0.0.1
www IN  A       20.0.0.41                  #添加解析地址

[root@localhost named]# cp -p abc.com.zone dba.com.zone

Reinicie la tarjeta de red para desactivar la función de protección

[root@localhost named]# setenforce 0
[root@localhost named]# iptables -F
[root@localhost named]# systemctl start named

La prueba del cliente funciona

marca

marca

Crear archivo de configuración de host virtual

  • El archivo de directorio está en / etc / httpd / conf / extra /, y el nombre del archivo de configuración simple es vhost.conf
#切换到httpd目录
[root@localhost named]# cd /etc/httpd/
[root@localhost httpd]# ls
conf  conf.d  conf.modules.d  logs  modules  run
[root@localhost httpd]# ls conf.d/
autoindex.conf  README  userdir.conf  welcome.conf
[root@localhost httpd]# ll
总用量 0
drwxr-xr-x. 2 root root  37 77 13:35 conf
drwxr-xr-x. 2 root root  82 77 13:35 conf.d
drwxr-xr-x. 2 root root 146 77 13:35 conf.modules.d
lrwxrwxrwx. 1 root root  19 77 13:35 logs -> ../../var/log/httpd
lrwxrwxrwx. 1 root root  29 77 13:35 modules -> ../../usr/lib64/httpd/modules
lrwxrwxrwx. 1 root root  10 77 13:35 run -> /run/httpd
#/var/log/httpd是日志文件目录   logs是软连接
#这里注意的是服务没启动是没有文件的
[root@localhost httpd]# systemctl start httpd
[root@localhost httpd]# ls /var/log/httpd/
access_log  access_log-20200802  error_log  error_log-20200802
[root@localhost httpd]# ls logs/
access_log  access_log-20200802  error_log  error_log-20200802

Archivo /etc/httpd/conf/extra/vhost.conf

  • Significa que se puede acceder a todas las direcciones IP a través del puerto 80
  • DocumentRoot "es un directorio de sitios web"
  • ServerName "Nombre de dominio del servicio del sitio"
  • Errorlog "Especifique la ruta del registro de errores"
  • Registro personalizado "Especifique la ruta del registro de acceso" seguido de herramientas de extensión comunes
  • Especifique el nombre del directorio de la configuración detallada, puede encontrar que es el directorio principal del directorio del sitio web, lo que
    permite todos los derechos de acceso de todos los hosts de los usuarios // Esto expandirá más atributos de configuración más adelante
[root@localhost httpd]# cd conf
[root@localhost conf]# ls
httpd.conf  magic
[root@localhost conf]# mkdir shuai
[root@localhost conf]# ls
httpd.conf  magic  shuai
[root@localhost shuai]# vim vhost.conf
<VirtualHost *:80>
  DocumentRoot "/var/www/html/abc"
  ServerName www.kgc.com
  ErrorLog "logs/www.abc.com.error_log"
  CustomLog "logs/www.abc.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost *:80>
  DocumentRoot "/var/www/html/dba"
  ServerName www.dba.com
  ErrorLog "logs/www.dba.com.error_log"
  CustomLog "logs/www.dba.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

Crea un sitio con dos páginas web

  • El archivo de la página de inicio index.html está en el directorio del sitio de / var / www / html
[root@localhost shuai]# cd /var/www/html/
[root@localhost html]# ls
index.html
[root@localhost html]# mkdir abc dba
[root@localhost html]# ls
abc  index.html  dba
[root@localhost html]# cd abc/
[root@localhost abc]# vim index.html
<h1>this is abc web</h1>
[root@localhost abc]# cd ../dba/
[root@localhost dba]# vim index.html
<h1>this is dba web</h1>

Necesita agregar la ruta de shuai al archivo de configuración principal, comience a leer para ser reconocido

[root@localhost kgc]# cd /etc/httpd/conf
[root@localhost conf]# ls
httpd.conf  magic  shuai
[root@localhost conf]# cd shuai/
[root@localhost shuai]# ls
vhost.conf
[root@localhost shuai]# vim /etc/httpd/conf/httpd.conf

Include conf/shuai/vhost.conf

Inicie el servicio, compruebe el puerto

[root@localhost shuai]# systemctl start httpd
[root@localhost shuai]# netstat -natp | grep httpd
tcp6       0      0 :::80                   :::*                    LISTEN      28532/httpd         

El siguiente paso para que el cliente verifique

marca

marca

Experimento 2: Construcción de hosts virtuales basada en puertos

  • Modifique el archivo de configuración del servidor web virtual y agregue un parámetro de puerto de 8080. Para distinguir los sitios, los archivos del sitio deben modificarse y distinguirse, y no se sobrescribirán
[root@localhost ~]# vim /etc/httpd/conf/shuai/vhost.conf 

<VirtualHost *:8080>                                     #修改端口信息
  DocumentRoot "/var/www/html/dba02"
  ServerName www.dba02.com
  ErrorLog "logs/www.dba02.com.error_log"
  CustomLog "logs/www.dba02.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>

Crea un sitio

[root@localhost ~]# mkdir /var/www/html/dba02
[root@localhost ~]# vim /var/www/html/dba02/index.html

<h1>this is dba02</h1>

Configurar puerto de escucha

[root@localhost ~]# vim /etc/httpd/conf/httpd.conf

marca

Se recomienda encarecidamente modificar la información del puerto y no debe modificarla a un puerto entre 1 y 1024, ya que estos puertos han sido utilizados por los servicios del sistema.

Reinicie el servicio y verifique que el puerto esté abierto

root@localhost ~]# systemctl restart httpd      #重载httpd服务
[root@localhost ~]# netstat -ntap | grep httpd   #两个监听端口已开启
tcp        0      0 20.0.0.41:8080          0.0.0.0:*               LISTEN      31057/httpd         
tcp        0      0 20.0.0.41:80            0.0.0.0:*               LISTEN      31057/httpd         

Verifique la verificación, la dirección IP es la misma, el puerto es diferente

marca

Tres: construir un host virtual basado en un experimento de IP

  • Construya 2 sitios web virtuales
  1. www.abc.com, la dirección IP es 20.0.0.41

  2. www.abc01.com, la dirección IP es 20.0.0.50

Modificar el archivo de configuración del servidor web virtual

Cuando se utilizan hosts web virtuales con diferentes IP en el servidor, la dirección IP en el archivo /etc/httpd/conf/extra/vhost.conf debe representarse en una dirección IP fija, y el símbolo * comodín no debe usarse para evitar confusiones
<VirtualHost 20.0.0.41:80>
  DocumentRoot "/var/www/html/abc"
  ServerName www.abc.com
  ErrorLog "logs/www.abc.com.error_log"
  CustomLog "logs/www.abc.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

<VirtualHost 20.0.0.50:80>
  DocumentRoot "/var/www/html/dba"
  ServerName www.dba.com
  ErrorLog "logs/www.dba.com.error_log"
  CustomLog "logs/www.dba.com.access_log" common
  <Directory "/var/www/html">
    Require all granted
  </Directory>
</VirtualHost>

Cree un nuevo sitio web virtual

[root@localhost html]# cat abc/index.html 
<h1>this is abc web</h1>
[root@localhost html]# cat dba/index.html 
<h1>this is dba web</h1>

Modifique el archivo de configuración principal y agregue una dirección de escucha

Listen 20.0.0.41:80
Listen 20.0.0.50:80
#Listen 80

Reinicie el servicio httpd

[root@localhost html]# systemctl restart httpd
[root@localhost html]# netstat -ntap | grep httpd
tcp        0      0 20.0.0.50:80            0.0.0.0:*               LISTEN      92579/httpd         
tcp        0      0 20.0.0.41:80            0.0.0.0:*               LISTEN      92579/httpd         

Autenticación de cliente

marca

marca

4: crea un hipervínculo dentro del sitio

Modificar el archivo de la página de inicio

[root@localhost html]# vim /var/www/html/abc/index.html

<html>
<head>
 <titele>hello boy</tite>
</head>
<body>
<h1><a href="http://www.abc.com/index.html">hello world</a></h1>
</body>
</html>

Reiniciar servicio

[root@localhost html]# systemctl restart httpd

Autenticación de cliente

[La imagen del enlace externo se está transfiriendo ... (img-xnDeh0Wa-1597279409877)]

[Las imágenes del enlace externo se están transfiriendo ... (img-laGYLdWF-1597279409877)]

4: crea un hipervínculo dentro del sitio

Modificar el archivo de la página de inicio

[root@localhost html]# vim /var/www/html/abc/index.html

<html>
<head>
 <titele>hello boy</tite>
</head>
<body>
<h1><a href="http://www.abc.com/index.html">hello world</a></h1>
</body>
</html>

Reiniciar servicio

[root@localhost html]# systemctl restart httpd

marca

Supongo que te gusta

Origin blog.csdn.net/weixin_47151643/article/details/107971428
Recomendado
Clasificación