如何创建基于名称的Apache虚拟主机

虚拟主机是指在一台Apache服务器上维护多个网站的做法。

如果要配置基于名称的虚拟主机,NameVirtualHost指令是必需的指令。

使用NameVirtualHost指令,可以指定服务器将接收基于名称的虚拟主机的请求的IP地址。这通常是基于名称的虚拟主机名解析到的地址。

虚拟主机和IP地址

如果要在计算机上维护多个域/主机名,则可以为其设置VirtualHost容器。

大多数配置仅使用基于名称的虚拟主机,因此可以在配置文件中直接使用星号,如下所示:

NameVirtualHost *:80
 
<VirtualHost *:80>
    ServerAdmin webmaster@onitroad.tech
    DocumentRoot "/usr/local/docs/onitroad.tech"
    ServerName onitroad.tech
    ServerAlias www.onitroad.tech
    ErrorLog "/var/log/onitroad.tech-error_log"
    CustomLog "/var/log/onitroad.tech-access_log" common
</VirtualHost>
 
<VirtualHost *:80>
    ServerAdmin webmaster@oir.org
    DocumentRoot "/var/www/html/oir.org/"
    ServerName oir.org
    ErrorLog "/var/log/oir.org-error_log"
    CustomLog "/var/log/oir.org-access_log" common
</VirtualHost>

Apache 2中基于名称的虚拟主机配置

例如,假设IP地址是203.54.2.5。

编辑httpd.conf文件:

# vi /etc/httpd/conf/httpd.conf

设置NameVirtualHost:

NameVirtualHost 203.54.2.5:80

假设有两个虚拟机,对应域名分别
oir.org 和 onitroad.tech

oir.org 虚拟机的配置

<VirtualHost oir.org/>
 ServerAdmin webmaster@oir.org
 DocumentRoot /var/www/oir.org
 ServerName oir.org
 ServerAlias wwwonitroad.com
 ErrorLog /var/logs/httpd/oir.org/error_log
 CustomLog /var/logs/httpd/oir.org/access_log common
 </VirtualHost>

onitroad.tech 虚拟机的配置

<VirtualHost onitroad.tech/>
 ServerAdmin webmaster@onitroad.tech
 DocumentRoot /var/www/onitroad.tech
 ServerName onitroad.tech
 ServerAlias www.onitroad.tech
 ErrorLog /var/logs/httpd/onitroad.tech/error_log
 CustomLog /var/logs/httpd/onitroad.tech/access_log common
 </VirtualHost>

重新启动Apache:

# /etc/init.d/httpd restart

需要在域名控制面板中(买域名的地方)
设置A地址,指向203.54.2.5 。
还要确保创建/var/logs/httpd/domain-name目录,并将ftp用户目录指向相应的/var/www/domain-name目录。

日期:2019-11-20 08:54:17 来源:oir作者:oir