Apache虚拟主机的配置(基于域名、端口、IP)

90 阅读2分钟

httpd 支持在一台物理主机上实现多个网站,即多虚拟主机

基于域名:为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。 例如,www.zf.comwww.zzff.com 站点的 IP 地址都是 192.168.247.170。这是使用最为普遍的虚拟 Web 主机类型。

基于 IP 地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。(但是相对安全)

基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用了不同的TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才能访问。

基于ip地址

实际操作

[root@node2 conf.d]#vim /etc/httpd/conf.d/test.conf 
<VirtualHost 192.168.91.101:80>  //基于ip
    ServerAdmin support@jfedu.net
    DocumentRoot "/var/www/html/abcd" //指定根
    ServerName www.abcd.com   //域名
    ErrorLog "logs/www.abcd.com_error_log"   // 指定日志位置
    CustomLog "logs/www.abcd.com_access_log" common
</VirtualHost>



<VirtualHost 192.168.91.188:80>
    ServerAdmin support@jfedu.net
    DocumentRoot "/var/www/html/accp"
    ServerName www.accp.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.accp.com_error_log"
    CustomLog "logs/www.accp.com_access_log" common
</VirtualHost>


<Directory "/var/www">  //给目录权限
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>


[root@localhost extra]#vim /etc/httpd/conf/httpd.conf
Listen 192.168.91.101:80  //监听80端口
Listen 192.168.91.188:80

基于端口地址

[root@node2 conf.d]#vim /etc/httpd/conf.d/test.conf 
​
<VirtualHost 192.168.91.101:80> //基于端口号
    ServerAdmin support@jfedu.net
    DocumentRoot "/var/www/html/accp"
    ServerName www.accp.com
    ErrorLog "logs/www.accp.com_error_log"
    CustomLog "logs/www.accp.com_access_log" common
</VirtualHost>
​
​
​
<VirtualHost 192.168.91.101:8080>
    ServerAdmin support@jfedu.net
    DocumentRoot "/var/www/html/accp"
    ServerName www.accp.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.accp.com_error_log"
    CustomLog "logs/www.accp.com_access_log" common
</VirtualHost>
​
​
<Directory "/var/www">
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>
​
​
[root@localhost extra]#vim /etc/httpd/conf/httpd.conf
Listen 192.168.91.101:80

3.12.3 基于域名

[root@node2 conf.d]#vim /etc/httpd/conf.d/test.conf 
<VirtualHost 192.168.91.101:80>   
    ServerAdmin support@jfedu.net
    DocumentRoot "/var/www/html/kgc"  //指定Web服务器上存放网页文件的根目录
    ServerName www.kgc.com   //指定域名
    ErrorLog "logs/www.kgc.com_error_log"  //指定日志位置
    CustomLog "logs/www.kgc.com_access_log" common
</VirtualHost>



<VirtualHost 192.168.91.101:80>
    ServerAdmin support@jfedu.net
    DocumentRoot "/var/www/html/accp"
    ServerName www.accp.com
    ServerAlias www.dummy-host.example.com
    ErrorLog "logs/www.accp.com_error_log"
    CustomLog "logs/www.accp.com_access_log" common
</VirtualHost>


<Directory "/var/www">  //添加权限
    AllowOverride None
    # Allow open access:
    Require all granted
</Directory>


mkdir -p /var/www/html/kgc  //建立文件夹
mkdir -p /var/www/html/accp
echo "<h1>www.kgc.com</h1>" /var/www/html/kgc/index.html //建立索引文件
echo "<h1>www.accp.com</h1>" /var/www/html/accp/index.html