文章目录

  • 一 定义
  • 二 系统环境
  • 三 基于域名
  • 3.1 安装软件
  • 3.2 修改主配置文件
  • 3.3 编写虚拟主机配置文件
  • 3.4 创建站点目录和测试文件
  • 3.5 设置防火墙访问策略
  • 3.6 编写Linux和Windows的hosts文件
  • 3.7 重启服务并测试
  • 3.8 报错说明
  • 四 基于IP
  • 4.1 添加网卡
  • 4.2 安装软件
  • 4.3 编写主配置文件
  • 4.4 编写虚拟主机配置文件
  • 4.5 创建站点目录和测试文件
  • 4.6 设置防火墙访问策略
  • 4.7 重启服务并测试
  • 五 基于端口
  • 5.1 安装软件
  • 5.2 编写主配置文件
  • 5.3 编写虚拟主机配置文件
  • 5.4 创建站点目录和测试文件
  • 5.5 设置防火墙访问策略
  • 5.6 重启服务并测试
  • 六 基于IP和端口


一 定义

虚拟主机是指在一台WWW服务器上为多个单独的域名提供web服务,产生不同的web界面。每个域名都有特定的目录和配置,相当于将一台主机分为多台主机。它满足了对主机数量不足而又想为不同用户提供独立web服务的需求。

二 系统环境

参数


主机IP

10.0.0.100

安装的apache版本

Apache/2.2.15 (Unix)

操作系统版本

CentOS release 6.9 (Final)

操作系统内核

2.6.32-696.el6.x86_64

三 基于域名

在一个主机创建多个网站,采用多个域名进行访问,其中域名对应的IP是同一个。

3.1 安装软件

yum安装apache服务

yum install -y httpd

安装完成后,会有2个依赖软件包一同被安装。

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信

3.2 修改主配置文件

通过yum安装得到的主配置文件是 /etc/httpd/conf/httpd.conf 在对其修改前,首先进行源文件备份。

[root@test ~]# cd /etc/httpd/conf
[root@test conf]# cp httpd.conf httpd.conf.bak

我们对 httpd.conf 进行修改,这是apache最终生效的主配置文件。

cebtos云服务器怎么安装微信_html_02

ServerName 后面的IP改成本主机网卡绑定的IP地址。
NameVirtualHost 前面的注释符号去掉,使其生效。

(检查Include这一步在 中同样检查,不再赘述)

检查 Include conf.d/*.conf 没有注释符号,需要生效。

cebtos云服务器怎么安装微信_服务器_03

3.3 编写虚拟主机配置文件

首先进入 /etc/httpd/conf.d/ 目录下,创建 vhost.conf

cd /etc/httpd/conf.d/
touch vhost.conf

配置的域名分别为 www.test1.comwww.test2.com,站点目录分别为 /var/www/html/test1/var/www/html/test2

[root@test conf.d]# cat vhost.conf
<VirtualHost *:80>
        ServerName www.test1.com
        DocumentRoot "/var/www/html/test1"
        ErrorLog logs/test1.err
        CustomLog logs/test1.access common
</VirtualHost>

<VirtualHost *:80>
        ServerName www.test2.com
        DocumentRoot "/var/www/html/test2"
        ErrorLog logs/test2.err
        CustomLog logs/test2.access common
</VirtualHost>

cebtos云服务器怎么安装微信_html_04

修改配置文件后,使用 httpd -t 检查httpd服务的配置文件语法是否有错。

cebtos云服务器怎么安装微信_centos_05

3.4 创建站点目录和测试文件

mkdir -p /var/www/html/test{1,2}
echo "www.test1.com" > /var/www/html/test1/index.html
echo "www.test2.com" > /var/www/html/test2/index.html

3.5 设置防火墙访问策略

允许80端口的服务。
添加一行下列内容。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信_06

3.6 编写Linux和Windows的hosts文件

在Linux中,编写 /etc/hosts 文件,使域名和IP产生映射关系。

cebtos云服务器怎么安装微信_apache_07

在Windows,编写 C:\Windows\System32\drivers\etc\hosts 文件。

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信_08

3.7 重启服务并测试

首先重启防火墙和httpd服务。

service iptables restart
service httpd restart

其次先在Linux测试,页面内容可以正常显示。

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信_09

接着在Windows浏览器测试,也可以正常显示。

cebtos云服务器怎么安装微信_html_10


cebtos云服务器怎么安装微信_centos_11

由此可知,基于域名的虚拟主机配置成功。

3.8 报错说明

(1)如果在日志文件中发现,服务器出现下列错误提示:

configuration error:  couldn't perform authentication. AuthType not set!: /

此处的500错误需要检查是否存在 Require all granted

cebtos云服务器怎么安装微信_服务器_12

如果出现,删除 Require all granted 即可。

(2)出现下列错误,将所有配置文件中多余的NameVirtualHost *:80参数删除掉即可,只保留我们配置的那部分内容。

[warn] NameVirtualHost *:80 has no VirtualHosts

(3)出现下列错误,去掉主配置文件的 ServerName 参数前面的注释,使其生效即可。

httpd: apr_sockaddr_info_get() failed for test

四 基于IP

在一个服务器上配置多个IP地址,每个IP地址提供不同的web界面,每个IP地址都有特定的目录和配置。

4.1 添加网卡

由于本机只有一个网卡,IP是10.0.0.100,因此需要添加一个网卡,IP是10.0.0.101

cebtos云服务器怎么安装微信_centos_13


然后编写 eth1 网卡的配置文件 /etc/sysconfig/network-scripts/ifcfg-eth1

cebtos云服务器怎么安装微信_服务器_14

将网卡名eth0改为eth1,将IP地址改成新的10.0.0.101,并修改mac地址。
得到mac地址,输入命令 ip a

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信_15


最后重启网卡服务即可。

cebtos云服务器怎么安装微信_服务器_16

4.2 安装软件

yum安装apache服务

yum install -y httpd

安装完成后,会有2个依赖软件包一同被安装。

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信

4.3 编写主配置文件

去掉 ServerName 的注释,使其生效。

cebtos云服务器怎么安装微信_centos_18

其他内容不需要改变。

4.4 编写虚拟主机配置文件

[root@test conf.d]# cat vhost.conf 
<VirtualHost 10.0.0.100:80>
        ServerName 10.0.0.100
        DocumentRoot "/var/www/html/test1"
        ErrorLog logs/test1.err
        CustomLog logs/test1.access common
</VirtualHost>

<VirtualHost 10.0.0.101:80>
        ServerName 10.0.0.101
        DocumentRoot "/var/www/html/test2"
        ErrorLog logs/test2.err
        CustomLog logs/test2.access common
</VirtualHost>

编写配置文件后,使用 httpd -t 检查语法格式。

cebtos云服务器怎么安装微信_服务器_19

4.5 创建站点目录和测试文件

mkdir -p /var/www/html/test{1,2}
echo "10.0.0.100" > /var/www/html/test1/index.html
echo "10.0.0.101" > /var/www/html/test2/index.html

4.6 设置防火墙访问策略

允许80端口的服务。
添加一行下列内容。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信_06

4.7 重启服务并测试

首先重启防火墙和httpd服务。

service iptables restart
service httpd restart

其次先在Linux测试,页面内容可以正常显示。

cebtos云服务器怎么安装微信_html_21

接着在Windows浏览器参数,页面也可以正常显示。

cebtos云服务器怎么安装微信_服务器_22

cebtos云服务器怎么安装微信_centos_23

综上所述,基于IP的虚拟主机配置成功。

五 基于端口

向外网用户提供多个端口的HTTP服务器。

5.1 安装软件

yum安装apache服务

yum install -y httpd

安装完成后,会有2个依赖软件包一同被安装。

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信

5.2 编写主配置文件

去掉 ServerName 的注释,使其生效。

cebtos云服务器怎么安装微信_apache_25

增加端口号,81和82.

cebtos云服务器怎么安装微信_cebtos云服务器怎么安装微信_26

其他内容不需要改变。

5.3 编写虚拟主机配置文件

[root@test conf.d]# cat vhost.conf 
<VirtualHost *:81>
        ServerName www.test1.com
        DocumentRoot "/var/www/html/test1"
        ErrorLog logs/test1.err
        CustomLog logs/test1.access common
</VirtualHost>

<VirtualHost *:82>
        ServerName www.test2.com
        DocumentRoot "/var/www/html/test2"
        ErrorLog logs/test2.err
        CustomLog logs/test2.access common
</VirtualHost>

编写后,使用 httpd -t 检测,配置文件格式正确。

cebtos云服务器怎么安装微信_centos_27

5.4 创建站点目录和测试文件

mkdir -p /var/www/html/test{1,2}
echo "10.0.0.100:81" > /var/www/html/test1/index.html
echo "10.0.0.100:82" > /var/www/html/test2/index.html

5.5 设置防火墙访问策略

允许80端口的服务。
添加一行下列内容。

-A INPUT -m state --state NEW -m tcp -p tcp --dport 81 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 82 -j ACCEPT

cebtos云服务器怎么安装微信_html_28

5.6 重启服务并测试

首先重启防火墙和httpd服务。

service iptables restart
service httpd restart

其次先在Linux测试,页面内容可以正常显示。

cebtos云服务器怎么安装微信_centos_29

接着在Windows浏览器参数,页面也可以正常显示。

cebtos云服务器怎么安装微信_apache_30


cebtos云服务器怎么安装微信_apache_31

综上所述,基于端口的虚拟主机配置成功。

六 基于IP和端口

配置好第二块网卡后,在 配置的基础上,只将虚拟主机配置文件进行修改成下列格式

cebtos云服务器怎么安装微信_html_32


就可以配置基于IP和端口的虚拟主机。

测试结果如下:

cebtos云服务器怎么安装微信_html_33