Nginx 虚拟主机

对于Nginx而言,每一个虚拟主机相当于一个在同一台服务器中却相互独立的站点,从而实现一台主机对外提供多个 web 服务,每个虚拟主机之间是独立的,互不影响的。

虚拟主机类型

Nginx 支持三种类型的虚拟主机配置:
  • 基于 IP 的虚拟主机
  • 基于域名的虚拟主机
  • 基于端口的虚拟主机

基于IP虚拟主机

1. 增加主机IP

目标主机需要主机配备 2 个以上 ip,配置 ip 不是本文重点,这里不展开。

2. 创建站点目录和网页

  [root@nginx ~]# mkdir -p /home/wwwroot/ipsite01/
  [root@nginx ~]# mkdir -p /home/wwwroot/ipsite02/
  [root@nginx ~]# echo 'ipsite01' > /home/wwwroot/ipsite01/index.html
  [root@nginx ~]# echo 'ipsite02' > /home/wwwroot/ipsite02/index.html
3. nginx 配置虚拟主机
[root@nginx ~]# vi /usr/local/nginx/conf/ipsite.conf
#添加如下内容
server {
    listen  80;			#监听端口
    server_name  192.168.1.1;	#配置虚拟主机名和IP
    location / {
        root /home/wwwroot/ipsite01/;		#请求匹配路径
        index  index.html;			#指定主页
        access_log  /home/wwwlog/ipsite01.access.log  main;
        error_log   /home/wwwlog/ipsite01.error.log  warn;
    }
}
server {
    listen  80;
    server_name  192.168.1.1;
    location / {
        root /home/wwwroot/ipsite02/;		#请求匹配路径 
        index  index.html;
        access_log  /home/wwwlog/ipsite02.access.log  main;
        error_log   /home/wwwlog/ipsite02.error.log  warn;
    }
}

4. 检查配置文件是否正确并重启加载配置生效

[root@nginx ~]# nginx -t 	                #检查配置文件
[root@nginx ~]# nginx -s reload			#重载配置文件

基于域名虚拟主机

1. 创建站点目录和网页

  [root@nginx ~]# mkdir -p /home/wwwroot/domainsite01/
  [root@nginx ~]# mkdir -p /home/wwwroot/domainsite02/
  [root@nginx ~]# echo 'domainsite01' > /home/wwwroot/domainsite01/index.html
  [root@nginx ~]# echo 'domainsite02' > /home/wwwroot/domainsite02/index.html
2. nginx 配置虚拟主机
[root@nginx ~]# vi /usr/local/nginx/conf/domainsite.conf
#添加如下内容
server {
    listen  80;			#监听端口
    server_name  www.cainiaoplus.com;	#配置虚拟主机域名
    location / {
        root /home/wwwroot/domainsite01/;		#请求匹配路径
        index  index.html;			#指定主页
        access_log  /home/wwwlog/domainsite01.access.log  main;
        error_log   /home/wwwlog/domainsite01.error.log  warn;
    }
}
server {
    listen  80;
    server_name  man.niaoge.com;
    location / {
        root /home/wwwroot/domainsite02/;		#请求匹配路径 
        index  index.html;
        access_log  /home/wwwlog/domainsite02.access.log  main;
        error_log   /home/wwwlog/domainsite02.error.log  warn;
    }
}

3. 检查配置文件是否正确并重启加载配置生效

[root@nginx ~]# nginx -t 	                #检查配置文件
[root@nginx ~]# nginx -s reload			#重载配置文件


基于端口虚拟主机

1. 创建站点目录和网页

  [root@nginx ~]# mkdir -p /home/wwwroot/portsite01/
  [root@nginx ~]# mkdir -p /home/wwwroot/portsite02/
  [root@nginx ~]# echo 'portsite01' > /home/wwwroot/portsite01/index.html
  [root@nginx ~]# echo 'portsite02' > /home/wwwroot/portsite02/index.html
2. nginx 配置虚拟主机
[root@nginx ~]# vi /usr/local/nginx/conf/portsite.conf
#添加如下内容
server {
    listen  8080;			#监听端口
    server_name  www.cainiaoplus.com;	#配置虚拟主机域名
    location / {
        root /home/wwwroot/portsite01/;		#请求匹配路径
        index  index.html;			#指定主页
        access_log  /home/wwwlog/portsite01.access.log  main;
        error_log   /home/wwwlog/portsite01.error.log  warn;
    }
}
server {
    listen  8090;
    server_name www.cainiaoplus.com;
    location / {
        root /home/wwwroot/portsite02/;		#请求匹配路径 
        index  index.html;
        access_log  /home/wwwlog/portsite02.access.log  main;
        error_log   /home/wwwlog/portsite02.error.log  warn;
    }
}

3. 检查配置文件是否正确并重启加载配置生效

[root@nginx ~]# nginx -t 	                #检查配置文件
[root@nginx ~]# nginx -s reload			#重载配置文件