进一步了解nginx工作原理

转载 2015年11月21日 15:32:42


问题:
1.DNS解析是什么,简述步骤1,2。
2.简述如何与服务器建立TCP连接。
3.简述客户端与服务器传送数据。
4.Http协议与TCP之间的关系。
5.简述Http get请求过程,并举例。
6.简述Http post请求过程,并举例。
7.nginx是什么?
8.简述nginx的工作流程。
9.简单的将图中内容填充。

解答:
1.DNS解析是什么,简述步骤1,2。

         DNS(Domain Name System,域名系统),因特网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便的访问互联网,而不用去记住能够被机器直接读取的IP数串。通过主机名,最终得到该主机名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。
         域名是为了方便记忆而专门建立的一套地址转换系统,要访问一台互联网上的服务器,最终还必须通过IP地址来实现,域名解析就是将域名重新转换为IP地址的过程。一个域名对应一个IP地址,一个IP地址可以对应多个域名;所以多个域名可以同时被解析到一个IP地址。域名解析需要由专门的域名解析服务器(DNS)来完成。
        解析过程,比如,一个域名为:***.com,如果要访问网站,就要进行解析,首先在域名注册商那里通过专门的DNS服务器解析到一个WEB服务器的一个固定IP上:211.214.1.***,然后,通过WEB服务器来接收这个域名,把***.com这个域名映射到这台服务器上。那么,输入***.com这个域名就可以实现访问网站内容了.即实现了域名解析的全过程;
        人们习惯记忆域名,但机器间互相只认IP地址,域名与IP地址之间是对应的,它们之间的转换工作称为域名解析,域名解析需要由专门的域名解析服务器来完成,整个过程是自动进行的。
        域名解析协议(DNS)用来把便于人们记忆的主机域名和电子邮件地址映射为计算机易于识别的IP地址。DNS是一种c/s的结构,客户机就是用户用于查找一个名字对应的地址,而服务器通常用于为别人提供查询服务。
        步骤1是客户端向服务器发出DNS请求。步骤2是服务器向客户端回送IP响应。
2.简述如何与服务器建立TCP连接。


        TCP连接建立需要经过“三次握手”的过程:
        1)最初的客户端TCP进程处于“CLOSE”(关闭)状态。当客户端准备发起一次TCP连接,进入“SYN-SEND”状态时,它首先向处于“LISTEN”(收听)状态的服务器端TCP进程发送第一个“SYN”报文(控制位SYN=1).“SYN”报文包括源端口号和目的端口号,目的端口号表示客户端打算连接的服务器进程号,以及一些连接参数。
        2)服务器端在受到“SYN”报文之后,如果同意建立连接,则向客户端发送第二个“SYN+ACK”报文(控制位SYN=1,ACK=1).该报文表示对第一个“SYN”报文请求的确认,同时也给出了“端口”大小,这时服务器进入“SYN-RCVD”状态。
        3)在接收到"SYN+ACK"报文之后,客户端发送第三个“ACK”报文,表示对“SYN+ACK”报文的确认。这时客户端进入“ESTABLISHED”(已建立连接)状态。服务器端在接收到“ACK”报文之后也进入“ESTABLISHED”(已建立连接)状态。
3.简述客户端与服务器传送数据。
        在建立连接最后一次“握手”时,客户端发送的数据捎带着http请求报文,服务器在给客户端的http响应报文中捎带着要浏览的数据。
4.Http协议与TCP之间的关系。
         TCP协议是传输层协议,主要解决数据如何在网络中传输。而HTTP是应用层协议,主要解决如何包装数据。HTTP建立在TCP的基础上。
5.简述Http get请求过程,并举例。
        当浏览器要从服务器中读取文档时使用get方法。get方法要求服务器将URL定位的资源放在应答报文的正文中,回送给浏览器。
        使用get方法读取路径为/usr/bin/imagel的图像。请求行给出了方法GET,URL,与HTTP协议版本号。报文头部有2行,给出了浏览器可以接受GIF与JPEG格式的图像。请求报文中没有正文。应答报文包括状态码和4行的报头。报头标识了日期,服务器,MIME版本号和文档长度:
请求:

        GET/usr/bin/image1  HTTP/1.1

         Accept:  image/gif

         Accept:  image/jpeg

应答:

        HTTP/1.1  200  ok

        Date: San,1-Feb-09  8:30:10  GMT

        Server:  nankai

        MIME-version:  1.0

        Content-length: 2048

             (文档内容)

 6.简述Http post请求过程,并举例。

         当浏览器要给服务器提供某些信息时可以使用POST方法。   

         使用POST方法向服务器发送数据。请求行给出了方法POST,URL与HTTP协议版本号。报文头部有4行。请求报文中给出了输入数据。应答报文包括状态码和4行的报头。被创建的CGI文档在应答报文的正文位置:

请求:

        POST/cgi-bin/doc.pl  HTTP/1.1

        Accept: */*

        Accept: image/gif

        Accept: image/jpeg

        Content-length:64

应答:

       HTTP/1.1  200  ok

       Data: San,1-Feb-09  8:30:10  GMT

       Server:nankai

        MIME-version: 1.0

        Content-length: 1048

                (文档的正文)

7.nginx是什么?

        Nginx(发音同engine x)是一款由俄罗斯程序员Igor Sysoev所开发轻量级的网页服务器反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。起初是供俄国大型的门户网站及搜索引擎Rambler俄语Рамблер)使用。此软件BSD-like协议下发行,可以在UNIXGNU/LinuxBSDMac OS XSolaris,以及Microsoft Windows等操作系统中运行。

        是一款面向性能设计的HTTP服务器,相较于Apachelighttpd具有占有内存少,稳定性高等优势。与旧版本(<=2.2)的Apache不同,nginx不采用每客户机一线程的设计模型,而是充分使用异步逻辑,削减了上下文调度开销,所以并发服务能力更强。整体采用模块化设计,有丰富的模块库和第三方模块库,配置灵活。 在Linux操作系统下,nginx使用epoll事件模型,得益于此,nginx在Linux操作系统下效率相当高。同时Nginx在OpenBSD或FreeBSD操作系统上采用类似于epoll的高效事件模型kqueue。

8.简述nginx的工作流程。

         当它接到一个HTTP请求时,它仅仅是通过查找配置文件将此次请求映射到一个location block,而此location中所配置的各个指令则会启动不同的模块去完成工作,因此模块可以看做Nginx真正的劳动工作者。通常一个location中的指令会涉及一个handler模块和多个filter模块(当然,多个location可以复用同一个模块)。handler模块负责处理请求,完成响应内容的生成,而filter模块对响应内容进行处理。

9.简单的将图中内容填充。

        1):DNS解析

        2):端口:80

      3):nginx的工作原理图:

初步探索Nginx高并发原理

Nginx首先要明白,Nginx 采用的是多进程(单线程) & 多路IO复用模型。使用了 I/O 多路复用技术的 Nginx,就成了”并发事件驱动“的服务器。多进程的工作模式1、Nginx 在启动后,...
  • STFPHP
  • STFPHP
  • 2016年10月26日 17:30
  • 4874

Nginx工作原理和优化、漏洞。

1.  Nginx的模块与工作原理 Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(loc...
  • hguisu
  • hguisu
  • 2013年05月16日 11:04
  • 122627

Nginx原理简介与 搭建反向代理服务器过程详解

1.1 反向代理初印象1.2 反向代理的作用2.1 Nginx是神马?2.2 Nginx的应用现状2.3 Nginx的核心特点3.1 准备一个ASP.NET网站部署到IIS服务器集群中3.2 下载Ng...
  • truelove12358
  • truelove12358
  • 2015年10月16日 17:21
  • 1520

浅谈nginx反向代理集群服务部署原理

了解ngnix HA服务器部署集群原理随笔
  • u013144287
  • u013144287
  • 2017年03月10日 14:12
  • 2302

nginx基本功能和工作原理

nginx能做什么 反向代理 正向代理 负载均衡 HTTP服务器(包含动静分离) 反向代理和正向代理正向代理。简单的说,我是一个用户,我无法直接访问一个网站,但是我能访问一个代理服务器,这个代理服务器...
  • wy757510722
  • wy757510722
  • 2017年07月17日 20:09
  • 589

浅谈Nginx负载均衡原理与实现

1 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可以解释N台服务器平均分担负载,不会因为某台服务器负载高宕机而某台服务器闲置的情况。那么负载均衡的前提就是要有多台服务器才能...
  • u012517198
  • u012517198
  • 2016年03月17日 09:27
  • 12899

nginx 工作原理

1. Nginx的模块与工作原理Nginx由内核和模块组成,其中,内核的设计非常微小和简洁,完成的工作也非常简单,仅仅通过查找配置文件将客户端请求映射到一个location block(locatio...
  • u013372487
  • u013372487
  • 2016年08月12日 18:04
  • 302

Nginx 之实现原理

144 作者 happy江柳清 关注 2015.10.26 17:23* 字数 2536 阅读 1753评论 2喜欢 8 本文主要从 Nginx 的进程模块、事件模块、http网络模块三方面介绍...
  • kevin_spa
  • kevin_spa
  • 2017年04月25日 15:45
  • 196

Nginx简介及使用Nginx实现负载均衡的原理【通俗易懂,言简意赅】

nginx 这个轻量级、高性能的 web server 主要可以干两件事情:   〉直接作为http server(代替apache,对PHP需要FastCGI处理器支持);   〉另外一个功能就是...
  • u014749862
  • u014749862
  • 2016年01月15日 10:50
  • 52462

Nginx工作原理和优化、漏洞。

原文来自于:http://blog.csdn.net/hguisu/article/details/8930668 1.  Nginx的模块与工作原理 Nginx由...
  • xfg0218
  • xfg0218
  • 2016年11月16日 22:22
  • 690
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:进一步了解nginx工作原理
举报原因:
原因补充:

(最多只允许输入30个字)