`

进一步了解nginx工作原理

阅读更多


问题:
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:http://book.51cto.com/art/201303/386555.htm

  • 大小: 55.1 KB
  • 大小: 1.1 MB
  • 大小: 1.2 MB
  • 大小: 12.5 KB
分享到:
评论

相关推荐

    跟我学Nginx+Lua开发_nginxlua原理_nginx_

    《跟我学Nginx+Lua开发》这本书主要探讨了如何利用Nginx与Lua进行高效、灵活的Web服务开发。Nginx以其高性能、反向代理和...通过阅读本书,你可以掌握Nginx+Lua的原理和实践技巧,进一步优化你的服务器性能和应用功能。

    nginx-java开发版源码

    开发者可以借此深入了解Nginx的架构,学习如何配置、编译以及调试Nginx,甚至可以开发自己的Nginx模块,实现Java和Nginx的深度集成。 总结来说,这个“nginx-java开发版源码”是一个面向开发者的资源,它不仅提供了...

    Nginx模块开发入门

    ### Nginx模块开发入门详解 ...对于希望深入了解Nginx内部工作原理并扩展其功能的开发者来说,模块开发是一项非常有价值的技能。通过实践和探索,不仅可以提高自己的技术实力,还能够为社区贡献有价值的作品。

    nginx脚本引擎与rewrite设计原理(三)

    通过对`cmcf-&gt;variables_keys` 和 `cmcf-&gt;variables`的详细介绍,我们深入了解了Nginx如何高效地管理和使用变量。此外,通过对`ngx_http_variable_t`和`ngx_variable_value_t`结构的理解,进一步揭示了变量处理过程...

    深入理解Nginx模块开发与架构解析(第2版)

    《深入理解Nginx模块开发与架构解析(第2版)》是一本专注于Nginx技术的专业书籍,针对Nginx的...通过学习,你将能够深入理解Nginx的内部工作原理,具备开发和优化Nginx模块的能力,为你的Web服务提供更强大的支持。

    实战Nginx pdf rar 高清版 15M

    本书提供了一个从基础到进阶的全面学习路径,让读者能够深入理解Nginx的工作原理,并掌握实际操作中的技巧。 首先,书中涵盖了Nginx的基本概念和安装过程。对于初学者,这部分内容至关重要,因为理解Nginx的基础...

    Nginx-4_nginx_

    **Nginx 详解** Nginx 是一款高性能的 HTTP 和反向代理服务器,同时也是一款邮件代理...通过阅读《理解 Nginx 源码》这本书,开发者可以更全面地掌握 Nginx 的工作原理,从而更好地利用这一工具服务于 Web 开发。

    精通nginx第2版

    《精通Nginx》第二版是一本全面深入讲解Nginx服务器配置与管理的专业书籍,旨在帮助读者从零基础开始,...通过学习本书,你可以深入了解Nginx的内部工作原理,提升Web服务的稳定性和效率,成为一名真正的Nginx高手。

    一键安装nginx

    【标题】"一键安装nginx"涉及的是在操作系统...用户只需要按照一定的步骤(如运行安装脚本)即可完成整个安装过程,无需深入了解Nginx的内部工作原理和配置细节。这对于初学者和需要快速部署环境的开发者来说非常实用。

    nginx 技术 分析

    **Nginx技术分析** ...在"nginx-0.8.51"这个版本中,我们来深入探讨Nginx的核心特性和工作原理。 1. **事件驱动模型** ...同时,了解Nginx与其他开源软件(如PHP-FPM、MySQL等)的协同工作也是至关重要的。

    Nginx企业级WEB服务器实战

    #### 三、Nginx的工作原理 Nginx的核心设计思路在于模块化。模块按结构可分为核心模块、基础模块和第三方模块三大类。 1. **核心模块**:包括HTTP模块、EVENT模块和MAIL模块等,这些模块构成了Nginx的基本功能框架...

    nginx优化 突破十万并发

    在探讨如何通过Nginx优化来突破十万并发之前,我们需要先了解Nginx的基本概念以及它的工作原理。Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器。相比于Apache,Nginx使用了异步非阻塞的...

    nginx-1.16.1.tar.gz

    1. **Nginx 架构与工作原理** Nginx 使用异步、事件驱动的架构,这使得它在处理高并发连接时表现出色。它的工作模式主要包括两种:反向代理和负载均衡。反向代理模式下,Nginx 接收客户端请求,然后将请求转发到...

    Nginx负载均衡与地址映射配置的完整配置

    首先,让我们了解Nginx的负载均衡配置。Nginx支持多种负载均衡策略,包括轮询(round-robin)、最少连接数(least connections)、IP哈希(ip_hash)等。以轮询为例,配置如下: ```nginx http { upstream backend...

    nginx-1.13.4.tar.gz

    Nginx是一个高性能的HTTP和反向代理服务器,也是一个IMAP/POP3/SMTP服务器,由伊戈尔·赛索耶夫(Igor Sysoev)于2002年开发,最初...通过学习Nginx的源码,还可以深入了解其工作原理,以便进行更深层次的定制和优化。

    Nginx高性能Web服务器实战教程

    首先,我们要理解Nginx的工作原理。Nginx采用事件驱动模型,非阻塞I/O处理方式,使其在高并发场景下表现出色。它的主进程负责管理多个工作进程,工作进程通过epoll(Linux系统)或其他类似机制监控网络连接,当有新...

    Nginx 应用技术指南

    #### 十五、Nginx原理代码分析 **15.1 剖析Nginx等单线程服务器设计原理与性能优势** 深入解析Nginx的设计原理,了解其高效处理高并发连接的能力。 **15.2 Nginx等web服务器设计中关于相关注意事项与心得** 分享在...

    nginx配合PHP安装,优化使用教程

    在本教程中,我们将深入探讨...这个教程将帮助新手在Linux环境中搭建起Nginx和PHP的运行环境,进一步的学习则需要深入理解Nginx的配置语法、PHP的编程原理以及服务器管理等方面的知识。祝你在Web开发的道路上不断进步!

    Mastering_Nginx

    通过阅读本书,您可以全面了解Nginx的强大功能,并学会如何根据具体需求进行高效配置。此外,本书还包含了大量实用的案例分析和技术建议,有助于提高您的实战能力,从而更好地应对日常工作中的挑战。

    nginx核心讲解--非常不多讲解nginx书籍

    在了解Nginx的核心知识点前,首先要明确几个概念。Nginx作为反向代理服务器,与传统的正向代理服务器不同。正向代理是指用户通过代理服务器访问互联网,而反向代理则是指用户访问代理服务器时,由代理服务器访问实际...

Global site tag (gtag.js) - Google Analytics