1 虚拟主机

  虚拟主机使用特殊的软硬件技术,把一台运行在因特网上的服务器主机分成一台台“虚拟”的主机,每一台虚拟主机都具有独立的域名,具有完整的Internet服务器(WWW、FTP、Email等)功能,虚拟主机之间完全独立,并可由用户自行管理,在外界看来,每一台虚拟主机和一台独立的主机完全一样。

  虚拟主机是为了在同一台物理机器上运行多个不同的网站,提高资源利用率引入的技术。

  一般的web服务器一个ip地址的80端口只能正确对应一个网站。web服务器在不使用多个ip地址和端口的情况下,如果需要支持多个相对独立的网站就需要一种机制来分辨同一个ip地址上的不同网站的请求,这就出现了主机头绑定的方法。

  简单的说就是,将不同的网站空间对应不同的域名,以连接请求中的域名字段来分发和应答正确的对应空间的文件执行结果。

  举个例子来说,一台服务器ip地址为192.168.8.101,有两个域名和对应的空间在这台服务器上,使用的都是192.168.8.101的80端口来提供服务。如果只是简单的将两个域名A和B的域名记录解析到这个ip地址,那么web服务器在收到任何请求时反馈的都会是同一个网站的信息,这显然达不到要求。接下来我们使用主机头绑定域名A和B到他们对应的空间文件夹C和D。当含有域名A的web请求信息到达192.168.8.101时,web服务器将执行它对应的空间C中的首页文件,并返回给客户端,含有域名B的web请求信息同理,web服务器将执行它对应的空间D中的首页文件,并返回给客户端,所以在使用主机头绑定功能后就不能使用ip地址访问其上的任何网站了,因为请求信息中不存在域名信息,就会出错

 

2 域名、dns、ip地址的关系

  域名是相对网站来说的,IP是相对网络来说的。当输入一个域名的时候,网页是如何做出反应的?
  输入域名—->域名解析服务器(dns)解析成ip地址—>访问IP地址—>完成访问的内容—>返回信息。

  一个ip地址可以对应很多个域名
  dns详细介绍:ttps://www.cnblogs.com/jthr/p/15890325.html

 

3 实例

3.1 配置多个server

  修改nginx.cfg文件

   下面配置了三个server 

  nginx1.com:访问到了是mynginx/nginx1下面的资源
  nginx2.com:访问到了是mynginx/nginx2下面的资源
  nginx3.com:访问到了是mynginx/nginx3下面的资源
worker_processes  1;




events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;



    sendfile        on;

    keepalive_timeout  65;



    server {
        listen       80;
        server_name  nginx1.com;

        location / {
            root   /usr/local/mynginx/nginx1;  #这里采用的是绝对路径也可以采用相抵路径,相对路径是相对于nginx的安装目录
            index  index.html index.htm;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       
    }
    
     server {
        listen       80;
        server_name  nginx2.com;

        location / {
            root   /usr/local/mynginx/nginx2;
            index  index.html index.htm;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       
    }
    
     server {
        listen       80;
        server_name  nginx3.com;

        location / {
            root   /usr/local/mynginx/nginx3;
            index  index.html index.htm;
        }


        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

       
    }


}

 

3.2 创建mynginx及下面的文件夹和资源

1)创建mynginx文件夹

 

2)创建nginx1文件夹

  

 

3)在nginx1创建index.heml

 输入内容:nginx1

 

4)创建nginx2和nginx3文件夹及下面的index文件,index的内容分别为nginx2和nginx3

 

3.3 重新加载nginx使配置生效

systemctl reload nginx

 

3.4 配置本级的映射

  此时直接通过域名访问是访问不到的。因为我们这里的域名不是真正的域名,没有和nginx所在服务器的ip绑定。

 

   所以,我们需要做一个本地映射

  找到计算机的host文件

  

 

   加如下上配置,这样子,我们在计算机上访问nginx1.com就会被映射到192.168.28.110,也就是nginx所在服务器的ip

#本地域名映射nginx
192.168.28.110  nginx1.com
192.168.28.110  nginx2.com
192.168.28.110  nginx3.com

 

3.5 访问

  注意可能存在缓存影响

 

  

原文地址:http://www.cnblogs.com/jthr/p/16825117.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性