nginx系列之Nginx虚拟主机配置详解

Nginx虚拟主机配置详解

什么是虚拟主机

虚拟主机使用的是特殊的软硬件技术,他把一台运行在因特网上的服务器主机分为一台台”虚拟“的主机,每台虚拟主机都可以是一个独立的网站,可以具有独立的域名,具有完整的服务器功能,同一台主机傻姑娘的虚拟主机之间是完全独立的。

nginx基本虚拟主机配置如下:

image.png

基于IP的虚拟主机

在Linux等常用操作系统都允许添加IP别名,可以在一块网卡中添加绑定多个IP地址,这样就可以在单一网卡的服务器中运行多个基于IP的虚拟主机。
复制代码

然后对nginx配置文件分别配置192.168.8.43、192.168.8.44、192.168.8.45三个IP配置静态HTML支持的虚拟主机。

http {
       # 配置192.168.8.43虚拟主机
       server {
       # 监听IP和端口
       listen   192.168.8.43:80;
       # 主机名称
       server_name 192.168.8.43;
       # 访问日志文件存放路径
       access_log logs/server1.access.log combined;
       
       location / {
           # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
           index index.html index.htm;
           # HTMl网页文件存放目录
           root /data1/server1;
           }
       }
       
        # 配置192.168.8.44虚拟主机
       server {
       # 监听IP和端口
       listen   192.168.8.44:80;
       # 主机名称
       server_name 192.168.8.44;
       # 访问日志文件存放路径
       access_log logs/server2.access.log combined;
       
       location / {
           # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
           index index.html index.htm;
           # HTMl网页文件存放目录
           root /data1/server2;
           }
       }
        # 配置192.168.8.45虚拟主机
       server {
       # 监听IP和端口
       listen   192.168.8.45:80;
       # 主机名称
       server_name 192.168.8.45;
       # 访问日志文件存放路径
       access_log logs/server3.access.log combined;
       
       location / {
           # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
           index index.html index.htm;
           # HTMl网页文件存放目录
           root /data1/server3;
           }
       } 
}
复制代码

由上述配置文件代码可以知道,一段server{}就是一个虚拟主机,如果要配置多个虚拟主机,配置多段server{}就可以,只不过里面的监听的ip和端口必须要不一样,也可以统一使用listen 80表示监听服务器上所有ip的80端口,通过server——name区分不同的虚拟主机

基于端口的虚拟主机

基于端口的虚拟主机基本上不是用的很多,一般情况只作为简单了解即可

 http {
        # 配置端口1虚拟主机
        server {
        # 监听IP和端口
        listen  80;
        # 主机名称
        server_name localhost;
        # 访问日志文件存放路径
        access_log logs/nginx80.access.log combined;
        
        location / {
            # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
            index index.html index.htm;
            # HTMl网页文件存放目录
            root /data1/nginx80;
            }
        }
        
         # 配置端口2虚拟主机
        server {
        # 监听IP和端口
        listen   81;
        # 主机名称
        server_name localhost;
        # 访问日志文件存放路径
        access_log logs/nginx81.access.log combined;
        
        location / {
            # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
            index index.html index.htm;
            # HTMl网页文件存放目录
            root /data1/nginx81;
            }
        }
         # 配置端口3虚拟主机
        server {
        # 监听IP和端口
        listen   82;
        # 主机名称
        server_name www.nginx82.com;
        # 访问日志文件存放路径
        access_log logs/nginx82.access.log combined;
        
        location / {
            # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
            index index.html index.htm;
            # HTMl网页文件存放目录
            root /data1/nginx82;
            }
        } 
 }
复制代码

基于域名的虚拟主机

基于域名的虚拟主机是比较常见的一种虚拟主机,只需配置本地的DNS服务器,将每个主机名映射到正确的ip地址,然后配置nginx服务器,令其识别不同的主机名就可以实现。

基于域名的方式使很多虚拟主机共享一个ip地址,有效的解决了ip地址不足的问题。所以如果没有特殊要求,尽量不要使用基于ip配置虚拟主机,尽量使用基于域名的虚拟主机。

http {
       # 配置域名1虚拟主机
       server {
       # 监听IP和端口
       listen  80;
       # 主机名称
       server_name www.nginx1.com;
       # 访问日志文件存放路径
       access_log logs/nginx1.access.log combined;
       
       location / {
           # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
           index index.html index.htm;
           # HTMl网页文件存放目录
           root /data1/nginx1;
           }
       }
       
        # 配置域名2虚拟主机
       server {
       # 监听IP和端口
       listen   80;
       # 主机名称
       server_name www.nginx2.com;
       # 访问日志文件存放路径
       access_log logs/nginx2.access.log combined;
       
       location / {
           # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
           index index.html index.htm;
           # HTMl网页文件存放目录
           root /data1/nginx2;
           }
       }
        # 配置域名3虚拟主机
       server {
       # 监听IP和端口
       listen   80;
       # 主机名称
       server_name www.nginx3.com;
       # 访问日志文件存放路径
       access_log logs/nginx3.access.log combined;
       
       location / {
           # 默认首页文件,顺序从左到右,如果找不到index.html ,则查找index.htm作为首页文件
           index index.html index.htm;
           # HTMl网页文件存放目录
           root /data1/nginx3;
           }
       } 
}
复制代码

Guess you like

Origin juejin.im/post/7049973792847691789