虚拟主机种类

虚拟主机种类(以nginx为例)

1. 设置基于域名的虚拟主机

  1. 设置阿里云域名解析

  2. 这里设置两个虚拟主机:

# /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{...}