Linux系统之Apache虚拟主机的三种实现方式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统之Apache虚拟主机的三种实现方式相关的知识,希望对你有一定的参考价值。

(Linux系统之Apache虚拟主机的三种实现方式)

一、Apache简介

二、Apache的特性

Apacheweb服务器软件拥有以下特性:

  • 1.支持最新的HTTP/1.1通信协议 -2.拥有简单而强有力的基于文件的配置过程 -3.支持通用网关接口 -4.支持基于IP和基于域名的虚拟主机 -5.支持多种方式的HTTP认证 -6.集成Perl处理模块 -7.集成代理服务器模块 -8.支持实时监视服务器状态和定制服务器日志 -9.支持服务器端包含指令(SSI) -10.支持安全Socket层(SSL) -11.提供用户会话过程的跟踪 -12.支持FastCGI -13.通过第三方模块可以支持JavaServlets

三、Apache虚拟主机介绍

  • 虚拟主机是指在一个机器上运行多个网站(比如:www.company1.com和www.company2.com)。如果每个网站拥有不同的IP地址,则虚拟主机可以是基于IP的;如果只有一个IP地址,也可以是基于主机名的,其实现对最终用户是透明的。

四、安装Apache步骤

1.安装httpd软件包

  • 在主机名为control的服务器上安装httpd包及httpd-manual.noarch包。
yum -y install httpd httpd-manual.noarch

2.放行防火墙服务

3.查看httpd进程

4.创建测试网站文件

  • 创建index文件,测试访问

五、三种虚拟主机的配置方法

1.基于域名的虚拟主机

①创建网页文件

②创建服务配置文件

③查看web1.conf配置文件

<VirtualHost *:80>
DocumentRoot /var/www/web1/
ServerName web1.example.com
</VirtualHost>


<VirtualHost *:80>
DocumentRoot /var/www/web2/
ServerName web2.example.com
</VirtualHost>


④重启httpd服务

⑤测试node1访问web服务器

2.基于端口的虚拟主机

① 创建网页内容

②创建配置文件

③.放行防火墙8080端口

④测试访问情况

3.基于ip的虚拟主机

①创建配置文件

②测试访问情况

linux7下虚拟主机的三种实现方式

一、 相同IP地址,不同端口号

虚拟主机1:主机IP地址为172.16.30.20,端口号为80(默认端口),DocumentRoot是/var/www/vhost1,在DocumentRoot目录下创建虚拟主机站点主页文件。

[root@rhel7 ~]# cd /var/www/
[root@rhel7 www]# mkdir vhost1
[root@rhel7 www]# cd vhost1/
[root@rhel7 vhost1]# vim index.html
[root@rhel7 vhost1]# cat index.html
this is the vhost1

虚拟主机2:主机IP地址为172.16.30.20,端口号为8080,DocumentRoot是/var/www/vhost2,在DocumentRoot目录下创建虚拟主机站点主页文件。

[root@rhel7 ~]# cd /var/www/
[root@rhel7 www]# mkdir vhost2
[root@rhel7 www]# cd vhost2/
[root@rhel7 vhost2]# vim index.html
[root@rhel7 vhost2]#
[root@rhel7 vhost2]# cat index.html
this is the vhost2

编辑虚拟机主机配置文件httpd-vhosts.conf

[root@rhel7 ~]# vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost 172.16.30.10:80>
    DocumentRoot "/var/www/vhost1"
</VirtualHost>
Listen 8080
<VirtualHost 172.16.30.10:8080>
    DocumentRoot "/var/www/vhost2"
</VirtualHost>
[root@rhel7 ~]# systemctl restart httpd
[root@rhel7 ~]# firewall-cmd --add-port=8080/tcp --permanent
success
[root@rhel7 ~]# firewall-cmd --reload
success

访问测试:
技术图片
技术图片

二、 不同IP地址,相同端口号
虚拟主机1:主机IP地址为172.16.30.20,端口号为80(默认端口),DocumentRoot是/var/www/vhost1,在DocumentRoot目录下创建虚拟主机站点主页文件。

虚拟主机2:主机IP地址为172.16.30.200,端口号为80(默认端口),DocumentRoot是/var/www/vhost2,在DocumentRoot目录下创建虚拟主机站点主页文件。

[root@rhel7 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens33
TYPE=Ethernet
BOOTPROTO=none
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=ens33
UUID=bde41fa3-f559-4de2-ba9a-857fed211aac
DEVICE=ens33
ONBOOT=yes
DNS1=127.0.0.1
ZONE=public
IPADDR=172.16.30.10
PREFIX=24
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPADDR1=172.16.30.100
PREFIX1=24
[root@rhel7 ~]# vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost 172.16.30.10:80>
    DocumentRoot "/var/www/vhost1"
</VirtualHost>

<VirtualHost 172.16.30.100:80>
    DocumentRoot "/var/www/vhost2"
</VirtualHost>

[root@rhel7 ~]# systemctl restart httpd

访问测试:
技术图片
技术图片
三、 相同IP地址,相同端口号,不同FQDN

虚拟主机1:主机IP地址为172.16.30.20,端口号为80(默认端口),FQDN为vhost1.example.com,DocumentRoot是/var/www/vhost1,在DocumentRoot目录下创建虚拟主机站点主页文件。
虚拟主机2:主机IP地址为172.16.30.20,端口号为80(默认端口),FQDN为vhost2.example.com,DocumentRoot/var/www/vhost2,在DocumentRoot目录下创建虚拟主机站点主页文件。

[root@rhel7 ~]# vim /etc/httpd/conf.d/httpd-vhosts.conf
<VirtualHost 172.16.30.10:80>
    DocumentRoot "/var/www/vhost1"
    ServerName vhost1.example.com
</VirtualHost>
<VirtualHost 172.16.30.10:80>
    DocumentRoot "/var/www/vhost2"
    ServerName vhost2.example.com
</VirtualHost>

注意:DNS服务器中需要添加对应的解析内容。
技术图片
访问测试:
技术图片
技术图片

记得每次修改完配置文件后需要重启服务。

以上是关于Linux系统之Apache虚拟主机的三种实现方式的主要内容,如果未能解决你的问题,请参考以下文章

apache配置虚拟主机的三种方式

linux7下虚拟主机的三种实现方式

Centos7 Apache配置虚拟主机的三种方式

Apache配置虚拟主机的三种方法(基于IP端口域名)

虚拟机装Linux的三种网络模式

SSO三种情况的实现方式