设为首页 收藏本站
查看: 783|回复: 0

[经验分享] 进一步了解nginx工作原理

[复制链接]

尚未签到

发表于 2016-12-26 07:53:12 | 显示全部楼层 |阅读模式
DSC0000.jpg
问题:
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。
DSC0001.jpg
         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连接。
DSC0002.jpg
        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的工作原理图:
DSC0003.png
 

参考:
  深入理解Nginx:http://book.iyunv.com/art/201303/386555.htm

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-319347-1-1.html 上篇帖子: Magento安装在Nginx下的配置 下篇帖子: Nginx之负载均衡分配策略
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表