概述
虚拟Web主机
在同一台服务器中运行多个Web站点,其中每一个站点并不独立占用一台真正的计算机。
httpd支持的虚拟主机类型:
基于域名:为每个虚拟主机使用不同的域名,但是其对应的IP地址是相同的。
基于IP地址:为每个虚拟主机使用不同的域名,且各自对应的 IP 地址也不相同。
基于端口:这种方式并不使用域名、IP 地址来区分不同的站点内容,而是使用 了不同的TCP端口号。
PS:域名和端口常用。
构建
基于域名
mkdir /opt/aaa
mkdir /opt/111
cd /opt/aaa/
vi index.html
<html><body><h1>this is aaa</h1></body></html>
cd /opt/111
vi index.html
<html><body><h1>this is 111</h1></body></html>
vi /etc/httpd.conf
Include conf/extra/httpd-vhosts.conf --删除前面的注释
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin webmaster@aaa.com
DocumentRoot "/opt/aaa"
ServerName www.aaa.com --修改网址,后期映射
ServerAlias www.dummy-host.example.com --删除
ErrorLog "logs/aaa.com-error_log"
CustomLog "logs/aaa.com-access_log" common
</VirtualHost>
<Directory "/opt/aaa"> --授权
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny --allow和deny同时存在执行顺序:先允许在拒绝
Allow from all --允许全部
Require all granted --拒绝全部
</Directory>
<VirtualHost *:80>
ServerAdmin webmaster@111.com
DocumentRoot "/opt/111"
ServerName www.111.com
ErrorLog "logs/111.com-error_log"
CustomLog "logs/111.com-access_log" common
</VirtualHost>
<Directory "/opt/111">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
vi /etc/hosts --添加映射
20.0.0.11 www.aaa.com www.111.com
systemctl restart httpd
netstat -anpt | grep 80
基于ip地址
ifconfig ens33:1 192.168.6.6/24 --添加一个虚拟地址
ip addr --查看是否添加成功
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 20.0.0.11:80>
<VirtualHost 192.168.6.6:80>
systemctl restart httpd
基于端口号
vi /etc/httpd.conf
Listen 80
Listen 8080
vi /usr/local/httpd/conf/extra/httpd-vhosts.conf
<VirtualHost 20.0.0.11:80>
<VirtualHost 192.168.6.6:8080>
systemctl stop httpd
systemctl start httpd
netstat -anpt | grep httpd