域名解析、nginx

域名解析原理

     当在浏览器中输入域名后,首先需要获取到域名对应的ip才能进行访问。域名和ip的映射存储在DNS服务器上,那么计算机是如何获取到对应的ip呢?

     1. 浏览器搜索自身的DNS缓存。
     2. 搜索操作系统自身的DNS缓存。
     3. 读取本地hosts文件
     4. 浏览器会发起一个DNS的系统调用,就会向本地配置的首选DNS服务器(一般是电信运营商提供的)发起域名解析请求.
     5. 如果步骤5没有解析成功,运营商的DNS服务器会代替我们的浏览器发起迭代DNS解析请求
    (1)首先会找到根域的DNS的IP地址,(DNS服务器都会有13台根域的DNS服务器的IP地址);
    (2)根据(1)中访问到的IP地址访问根域服务器,然后根域服务器会告知com域服务器的IP地址;
    (3)根据(2)中访问到的IP地址访问com域服务器,然后得到worthsen.com的IP地址;
    (4)根据(3)中访问到的worthsen.com的IP地址访问对应的服务器,然后得到www.worthsen.com的IP地址;
    (5)现在就可以访问了www.worthsen.com了。

CDN(内容分发网络 Content Delivery Network)

    通过分布在各地的缓存服务器,将一些静态资源分布在访问相对集中的一些地区,用户在访问网站时,通过DNS解析一台最适合的服务器来向用户提供服务,来实现负载均衡。

nignx

  • 虚拟主机
         简单来说,虚拟主机就是可以在一台nginx服务器上运行多个网站。nginx可以通过配置多个server来配置多台虚拟主机,一个server对应一台虚拟主机。一台虚拟主机上可以部署一个网站。各个虚拟主机的ip地址是相同的,但是一个ip可以绑定不同的域名,所以每台虚拟主机都可以拥有自己的域名和端口号,但是80端口只有一个,一般情况下,多台虚拟主机公用80端口,然后根据域名来区分客户端请求的到底是哪一台虚拟主机,哪一个网站。
         配置虚拟主机可以基于端口号,IP和域名。1.基于端口号的虚拟机主机:nginx监听多个端口,根据不同的端口号;来区分不同的网站。2.基于域名的虚拟主机:实际的场景中,访问一个网站都是通过不同的域名访问,所以基于域名的虚拟主机是最常见的,不同的域名可以解析指向同一个ip地址,而nginx在解析请求的时候会根据不同的域名来指向不同服务。3.基于IP的虚拟主机;一台主机可以拥有超过1个ip地址,通过不同的ip地址,指向不同的服务。
  • 反向代理
         反向代理与正向代理的区别就是:正向代理代理客户端,反向代理代理服务器。
         正向代理的是一个位于客户机和原始服务器之间的代理服务器,客户机为了从原始服务器拿到数据,向代理服务器发送一个请求并指向原始服务器,原始服务器将内容交给代理服务器并返回给客户机。
         反向代理是由代理服务器接收客户机的请求,并转发到内网的服务器上。并将从服务器上取得的数据返回给客户机,此时代理服务器对外表现得就像一个服务器。
        
  • 负载均衡
         负载均衡是指多个服务器共同完成一件事情,其核心是“分摊压力”。Nginx实现负载均衡是指将请求转发给服务器集群。Nginx默认处理负载均衡的方式是“轮询”。负载均衡和反向代理是两个功能,但不能完全分开,要实现负载均衡首先要实现反向代理,而且当代理的是服务器集群时才能实现负载均衡。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章