虚拟主机种类(以nginx为例)
1. 设置基于域名的虚拟主机
设置阿里云域名解析
- www.aaa.com nginx所在主机的公网IP
- www.bbb.com nginx所在主机的公网IP
这里设置两个虚拟主机:
# /etc/nginx/conf.d/aaa.conf
server{
listen 80;
server_name www.aaa.com;
root /usr/share/nginx/html/aaa; # 网站根目录
index index.html; # 网站主页
}
# /etc/nginx/conf.d/bbb.conf
server{
listen 80;
server_name www.bbb.com;
root /usr/share/nginx/html/bbb; # 网站根目录
index index.html; # 网站主页
}
- www.aaa.com 返回的是aaa目录下的
index.html
- www.bbb.com 返回的是bbb目录下的
index.html
- 但是如果直接访问IP: 返回的是nginx设置的默认网站目录
2. 虚拟主机(基于端口)
# /etc/nginx/conf.d/80.conf
server{
listen 80;
server_name localhost;
root /usr/share/nginx/html/dir80; # 网站根目录
index index.html; # 网站主页
}
# /etc/nginx/conf.d/8080.conf
server{
listen 8080;
server_name localhost;
root /usr/share/nginx/html/dir8080; # 网站根目录
index index.html; # 网站主页
}
3. 基于IP的虚拟主机
- 很少用
- 需要一台服务器有多个IP地址, 不同IP地址对应不同虚拟主机
nginx虚拟主机配置文件
1. 方式1: 修改主配置文件/nginx/conf/nginx.conf
# nginx.conf
http{
server{...} # 每一个server就是一个虚拟主机
server{...}
server{...}
}
2. 方式2(推荐): 增加单独的子配置文件/nginx/conf/conf.d/*.conf
# /nginx/conf/nginx.conf 主配置文件
include /etc/nginx/conf.d/*.conf; # 设置子配置文件的目录/conf.d/
# /etc/nginx/conf.d/abc.conf 虚拟主机1 该目录下每个.conf文件都是一个虚拟主机
server{...}
# /etc/nginx/conf.d/def.conf 虚拟主机2
server{...}