构建虚拟主机
虚拟主机介绍
在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机。
构建虚拟主机的三种方式:
- 基于域名
为每个虚拟主机使用不同的域名,但是其对应的 IP 地址是相同的。 - 基于IP地址
为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相
同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广泛。 - 基于端口
这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用
了不同的TCP 端口号,因此用户在浏览不同的虚拟站点时需要同时指定端口号才
能访问。
基于域名构建虚拟主机
示例:在192.168.10.11主机上构建两个站点
www.aa.com www.bb.com
操作步骤:
本项目中采用hosts映射解析域名,另外也可使用DNS域名解析服务。
mkdir /opt/aa
mkdir /opt/bb
cd /opt/aa
echo "<h1>aa</h1>" > index.html
cd /opt/bb
echo "<h1>bb</h1>" > index.html
vi /etc/httpd.conf
Include conf/extra/httpd-vhosts.conf(删除行首#)
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@aa.com
DocumentRoot "/opt/aa"
ServerName www.aa.com
ErrorLog "logs/aa.com-error_log"
CustomLog "logs/aa.com-access_log" common
</VirtualHost>
<Directory "/opt/aa">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
vi /etc/hosts
(添加)192.168.10.11 www.aa.com www.bb.com
systemctl restart httpd
使用浏览器浏览www.aa.com、www.bb.com验证结果。
基于IP地址
ifconfig ens33:1 192.168.10.200/24 虚拟ip
ip addr
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
添加修改ip地址
<VirtualHost 172.16.10.10:80>
ServerAdmin webmaster@aa.com
DocumentRoot "/opt/aa"
ServerName www.aa.com
ErrorLog "logs/aa.com-error_log"
CustomLog "logs/aa.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.10.200:80>
ServerAdmin webmaster@bb.com
DocumentRoot "/opt/bb"
ServerName www.bb.com
ErrorLog "logs/bb.com-error_log"
CustomLog "logs/bb.com-access_log" common
</VirtualHost>
systemctl restart httpd
使用浏览器浏览172.16.10.10、192.168.10.200验证结果。
基于端口号
修改端口号
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 172.16.10.10:80>
ServerAdmin webmaster@aa.com
DocumentRoot "/opt/aa"
ServerName www.aa.com
ErrorLog "logs/aa.com-error_log"
CustomLog "logs/aa.com-access_log" common
</VirtualHost>
<VirtualHost 192.168.10.200:8080>
ServerAdmin webmaster@bb.com
DocumentRoot "/opt/bb"
ServerName www.bb.com
ErrorLog "logs/bb.com-error_log"
CustomLog "logs/bb.com-access_log" common
</VirtualHost>
增加监听端口
vi /etc/httpd.conf
Listen 80
Listen 8080
systemctl restart httpd
使用浏览器浏览172.16.10.10:80、192.168.10.200:8080验证结果。