Nginx 配置实例-配置虚拟主机

配置基于域名的虚拟主机

以下步骤将配置三个域名不同的虚拟主机,各虚拟主机规划如下:

  • 域名为 aaa.domain.com 的虚拟主机,处理所有对域名 aaa.domain.com 的访问
  • 域名为 bbb.otherdomain.com 的虚拟主机,处理所有对域名 bbb.otherdomain.com 的访问

1. 配置域名为 aaa.domain.com 的虚拟主机

1.1 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,将 http 模块内容修改如下:

http {
    # 虚拟主机 aaa.domain.com
    server {
        # 监听的 IP 和端口
        listen  80; 
        # 虚拟主机名
        server_name aaa.domain.com; 
        # 日志
        access_log  /var/log/nginx/domain-aaa-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/domain-aaa;
        }
    }   
}
 

 

1.2 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx

# 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/domain-aaa
 

创建完成 /html/nginx/domain-aaa 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 domain-aaa 目录,充当 aaa.domain.com 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/domain-aaa
 

修改 index.html 文件,修改内容如下:
在这里插入图片描述

1.3 验证域名为 aaa.domain.com 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t

# 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

# 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

 

要想通过域名正确访问 aaa.domain.com,还需配置域名和IP的映射关系,修改本机的 hosts 文件,添加如下内容:

192.168.25.101 aaa.domain.com
 

浏览器访问 aaa.domain.com,将会出现默认首页,页面内容如下:
在这里插入图片描述

2. 配置域名为 bbb.otherdomain.com 的虚拟主机

2.1 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,将 http 模块内容修改如下:

http {
    # 虚拟主机 aaa.domain.com
    server {
        # 监听的 IP 和端口
        listen  80; 
        # 虚拟主机名
        server_name aaa.domain.com; 
        # 日志
        access_log  /var/log/nginx/domain-aaa-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/domain-aaa;
        }
    }   

    # 虚拟主机 bbb.otherdomain.com
    server {
        # 监听的 IP 和端口
        listen  80; 
        # 虚拟主机名
        server_name bbb.otherdomain.com;    
        # 日志
        access_log  /var/log/nginx/domain-bbb-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/domain-bbb;
        }
    }   
}
 

2.2 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx

# 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/domain-bbb
 

 

创建完成 /html/nginx/domain-bbb 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 domain-bbb 目录,充当 bbb.otherdomain.com 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/domain-bbb
 

修改 index.html 文件,修改内容如下:
在这里插入图片描述

2.3 验证域名为 bbb.otherdomain.com 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t

# 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

# 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

 

 

要想通过域名正确访问 aaa.domain.com,还需配置域名和IP的映射关系,修改本机的 hosts 文件,添加如下内容:

192.168.25.101 bbb.otherdomain.com
 

浏览器访问 bbb.otherdomain.com,将会出现默认首页,页面内容如下:
在这里插入图片描述

参考文档

《实战Nginx-取代Apache的高性能Web服务器》3.2.3 配置基于域名的虚拟主机

配置基于 IP 的虚拟主机

以下步骤将配置三个 IP 不同的虚拟主机,各虚拟主机规划如下:

  • IP 为 192.168.25.101 的虚拟主机——真实主机
  • IP 为 192.168.25.199 的虚拟主机——通过为网卡添加 IP 别名创建的虚拟主机
  • IP 为 192.169.25.200 的虚拟主机——通过为网卡添加 IP 别名创建的虚拟主机

1. 配置 IP 为 192.168.25.101 的虚拟主机

1.1 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,将 http 模块内容修改如下:

http {
    # 虚拟主机 192.168.25.101
    server {
        # 监听的 IP 和端口
        listen  192.168.25.101:80;
        # 虚拟主机名
        server_name 192.168.25.101; 
        # 日志
        access_log  /var/log/nginx/101-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/101;
        }
    }   
}
 

1.2 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx

# 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/101
 

 

创建完成 /html/nginx/101 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 101 目录,充当 192.168.25.101 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/101
 

修改 index.html 文件,修改内容如下:
在这里插入图片描述

1.3 验证 192.168.25.101 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t

# 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

# 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

 

 

浏览器访问 192.168.25.101,将会出现 101 主机的默认首页,页面内容如下:
在这里插入图片描述

2. 配置 IP 为 192.168.25.199 的虚拟主机

2.1 192.168.25.199 虚拟主机的模拟

这里虚拟主机的模拟,主要是通过给网卡取 IP 别名来完成的。

  1. 使用 ifconfig 命令查看当前主机的网卡和 IP
    在这里插入图片描述
  2. 在 eth0 网卡上添加 192.168.25.199 的 IP 别名
/sbin/ifconfig eth0:1 192.168.25.199 broadcast 192.168.25.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.25.199 dev eth0:1
 

 

  1. 验证 eth0 的 IP 别名 192.168.25.199 添加是否成功
    使用 ifconifg 命令查看 IP 相关信息
    在这里插入图片描述
    使用 ping 命令查看 192.168.25.199 的 IP 是否可以连接
    在这里插入图片描述

2.2 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,修改 http 模块内容如下:

http {
    # 虚拟主机 192.168.25.101
    server {
        # 监听的 IP 和端口
        listen  192.168.25.101:80;
        # 虚拟主机名
        server_name 192.168.25.101; 
        # 日志
        access_log  /var/log/nginx/101-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/101;
        }
    }   

    # 虚拟主机 192.168.25.199
    server {
        # 监听的 IP 和端口
        listen  192.168.25.199:80;
        # 虚拟主机名
        server_name 192.168.25.199; 
        # 日志
        access_log  /var/log/nginx/199-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/199;
        }
    }   
}
 

 

2.3 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx

# 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/199
 

 

 

创建完成 /html/nginx/199 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 199 目录,充当 192.168.25.199 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/199
 

 

修改 index.html 文件,修改内容如下:
在这里插入图片描述

2.4 验证 192.168.25.199 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t

# 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

# 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

浏览器访问 192.168.25.199,将会出现 199 主机的默认首页,页面内容如下:
在这里插入图片描述

3. 配置 IP 为 192.168.25.200 的虚拟主机

3.1 192.168.25.200 虚拟主机的模拟

这里虚拟主机的模拟,主要是通过给网卡取 IP 别名来完成的。

  1. 使用 ifconfig 命令查看当前主机的网卡和 IP
    在这里插入图片描述
  2. 在 eth0 网卡上添加 192.168.25.200 的 IP 别名
/sbin/ifconfig eth0:2 192.168.25.200 broadcast 192.168.25.255 netmask 255.255.255.0 up
/sbin/route add -host 192.168.25.200 dev eth0:2
 
  1. 验证 eth0 的 IP 别名 192.168.25.200 添加是否成功
    使用 ifconifg 命令查看 IP 相关信息
    在这里插入图片描述
    使用 ping 命令查看 192.168.25.199 的 IP 是否可以连接
    在这里插入图片描述

3.2 nginx 中虚拟主机的配置

修改 nginx 的配置文件 nginx.conf,修改 http 模块内容如下:

http {
    # 虚拟主机 192.168.25.101
    server {
        # 监听的 IP 和端口
        listen  192.168.25.101:80;
        # 虚拟主机名
        server_name 192.168.25.101; 
        # 日志
        access_log  /var/log/nginx/101-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/101;
        }   
    }   

    # 虚拟主机 192.168.25.199
    server {
        # 监听的 IP 和端口
        listen  192.168.25.199:80;
        # 虚拟主机名
        server_name 192.168.25.199; 
        # 日志
        access_log  /var/log/nginx/199-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/199;
        }   
    }   

    # 虚拟主机 192.168.25.200
    server {
        # 监听的 IP 和端口
        listen  192.168.25.200:80;
        # 虚拟主机名
        server_name 192.168.25.200; 
        # 日志
        access_log  /var/log/nginx/200-access.log combined;
        location / { 
            # 首页
            index index.html index.htm;
            # HTML 网页文件的根目录
            root /html/nginx/200;
        }   
    }   

}
 

 

3.3 相关目录及文件的创建

在上面的配置文件中,配置了两个相关的目录,一个是 access_log 配置的日志目录,另一个是 root 配置的网页文件的根目录,分别创建如下两个目录:

# 创建 nginx.conf 配置文件中 access_log 配置的日志目录
cd /var/log/
mkdir nginx

# 创建 nginx.conf 配置文件中 root 配置的网页文件的根目录
mkdir -vp /html/nginx/200
 

 

创建完成 /html/nginx/200 目录后,需向该目录添加 html 文件,充当默认首页

# 拷贝 nginx 的默认首页到 200 目录,充当 192.168.25.200 主机的默认首页
cp -vr /usr/local/nginx/html/* /html/nginx/200
 

修改 index.html 文件,修改内容如下:
在这里插入图片描述

3.4 验证 192.168.25.200 的虚拟主机配置是否成功

在修改 nginx 的配置文件之后,需要进行重载:

# 验证 nginx 的配置文件是否正确
/usr/local/nginx/sbin/nginx -t

# 重启 nginx(只有一个 server 时需要使用重启)
/usr/local/nginx/sbin/nginx -s stop
/usr/local/nginx/sbin/nginx

# 重载 nginx(多于一个 server 时可以使用重载)
/usr/local/nginx/sbin/nginx -s reload
 

浏览器访问 192.168.25.199,将会出现 199 主机的默认首页,页面内容如下:
在这里插入图片描述

参考文档

《实战Nginx-取代Apache的高性能Web服务器》3.2.2 配置基于IP的虚拟主机

 
原文地址:https://www.cnblogs.com/xiao-xue-di/p/12834685.html