一、构建虚拟web主机
虚拟web主机指的是在同一台服务器中运行多个web站点,其中每一个站点实际上并不独立占用整个服务器,因此被称为“虚拟”Web主机。通过虚拟Web主机服务可以充分利用服务器的硬件资源,从而大大降低网站构建及运行成本。
使用httpd服务可以非常方便地构建虚拟主机服务器,只需要运行一个httpd服务就能够同时支撑大量的web站点。
二、支持的虚拟主机类型
基于域名
为每个虚拟主机使用不同的域名,但是其对应的IP 地址是相同的。例如,www.lucien.com 和 www.ljm.com 共同使用同一个IP地址,这是使用最为普遍的虚拟 web 主机类型。
基于IP地址
为每个虚拟主机使用不同的域名,且各自对应的IP地址也不相同。这种方式需要为服务器配备多个网络接口,因此应用并不是非常广。
3、基于端口
这种方式并不使用域名、IP地址来区分不同的站点内容,而是使用了不同的TCP端口号,因此用户在浏览不同的虛拟站点时需要同时指定端口号才能访问。
三、基于域名的虚拟主机
①、为虚拟主机提供域名解析
方法一:部署DNS域名解析服务器,来提供域名解析
一键部署DNS正向解析
!/bin/bash
判断是否有本地yum源,如果没有,则创建本地yum源
cd /etc/yum.repos.d
if [ ! -e local.repo ]
then
mkdir repos.bak
mv *.repo repos.bak
echo '[local]
name=local
baseurl=file:///mnt
gpgcheck=0
enabled=1' > local.repo
fi
挂载并安装bind软件包
mount /dev/sr0 /mnt
yum -y install bind
修改主配置文件,监听地址为所有(any),允许解析网段为所有(any),注释掉IPV6
sed -i -e "13 s/127.0.0.1/any/" -e "21 s/localhost/any/" -e "14 s/^/#/" /etc/named.conf
在区域配置文件中添加需要解析的地址和区域数据配置文件
echo "zone "kgc.com" IN {
type master;
file "kgc.com.zone";
allow-update { none; };
};" >> /etc/named.rfc1912.zones
保留原有属性进行模板文件的复制并重命名
cp -p /var/named/named.localhost /var/named/kgc.com.zone
修改DNS区域名和服务器名称,记录主机IP地址,记录正向解析所对应的IP
sed -i "2 s/@/kgc.com./2" -e "8 s/@/kgc.com./" -e "9,$d" /var/named/kgc.com.zone
echo -e '\tA\t192.168.184.40\n
www\tIN\tA\t192.168.184.100' >> /var/named/kgc.com.zone
修改 DNS 地址
sed -i "2c nameserver 192.168.184.40" /etc/resolv.conf
关闭防火墙和增强型安全机制,并启动服务
systemctl stop firewalld.service
setenforce 0
systemctl start named
方法二:1.在 /etc/hosts 文件中临时配置域名与IP地址的映射
echo "192.168.80.10 www.kgc.com www.benet.com" >> /etc/hosts
2.为虚拟主机准备网页文档
mkdir -p /var/www/html/benet
mkdir -p /var/www/html/kgc
echo"
www.kgc.com
" > /var/www/html/kgc/index.htmlecho "
www.benet.com
" > /var/www/html/benet/index.html
3.修改Nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
....
http {
.....
server {
listen 80;
server_name WWW.kgc.com; #设置域名www. kgc. com
charset utf-8;
access_1og logs/www.kgc.access.log; #设置日志名
location / {
root /var/www/html/kgc; #设置www.kgc.com的工作目录
index index.html index.php;
}
error_page 500 502 503 504 /50x.html;
location = 50x.html{
root html;
}
}
server
listen 80;
server_name www.benet.com; #设置域名www.benet.com
charset utf-8;
access_log logs/www.benet.access.1og;
location / {
root /var/www/html/benet;
index index.html index.php;
}
error_page 500 502 503 504 /50x. html;
location = 50x.html{
root html;
}
}
}

4.重启服务
systemctl restart nginx
浏览器访问
http://www.kgc.com
http://www.benet.com
四.基于IP的 Nginx 虚拟主机
iflconfig ens33:0 192.168.80.11 netmask 255.255.255.0

vim /usr/local/nginx/conf/nginx.conf
....
http {
.....
server {
listen 192.168.116.90:80; #设置监听地址192.168.80.10
server_name WWW.nj.com; .
charset utf-8;
access_log logs/www.nj.access.log;
location / {
root /var/www/html/nj;
index index.html index.php;
}
error_page 500 502 503 504 /50x.html ;
location = 50x.html {
root html ;
}
}
server
listen 192.168.116.91:80;
server_name www.benet.com; #设置域名www.benet.com
charset utf-8;
access_log logs/www.benet.access.1og;
location / {
root /var/www/html/benet;
index index.html index.php;
}
error_page 500 502 503 504 /50x. html;
location = 50x.html{
root html;
}
}
}
systemctl restart nginx
浏览器访问
http://192.168.116.90
http://192.168.116.91
五、基于端口的 Nginx 虚拟主机
vim /usr/local/nginx/conf/nginx.conf
....
http {
.....
server {
listen 192.168.116.90:8080; #设置监听8080 端口.
server_name www.nj.com;
charset utf-8;
access_log logs/www.nj.acess.1og;
location / {
root /var/www/html/nj;
index index.html index.php;
}
error_page 500 502 503 504 /50x. html;
location = 50x. html{
root html;
}
}
server
listen 192.168.116.91:8888;
server_name www.benet.com; #设置域名www.benet.com
charset utf-8;
access_log logs/www.benet.access.1og;
location / {
root /var/www/html/benet;
index index.html index.php;
}
error_page 500 502 503 504 /50x. html;
location = 50x.html{
root html;
}
}
}
systemctl restart nginx
浙公网安备 33010602011771号