Heim  >  Artikel  >  Backend-Entwicklung  >  nginx学习(一)

nginx学习(一)

WBOY
WBOYOriginal
2016-08-08 09:22:56940Durchsuche

最近开始做CDN相关的业务,后台全部是nginx相关的知识,比如所有网站的缓存都是架构在nginx服务器上,各种转发,代理,缓存,负载均衡等功能全部由nginx支持。

很多的访问控制策略需要采用nginx内嵌lua来做,另外,关于CDN还有大量的逻辑和业务需要在nginx上进行定制开发,所以掌握nginx是深入开展CDN业务的基础。

所以打算用一段时间,一边学习,一边开发业务,把整体学习心得都记录下来,希望对nginx能有更好的理解。

目前对于nginx的了解仅限于以下几个方面:

  • 1 nginx 是一位俄罗斯大牛开源的基于事件驱动模型的C/S架构的高性能的WEB服务器,主要支持HTTP和邮件相关的协议。
  • 2 nginx 在WEB服务器中性能是最好的,虽然市场份额只排到第二位,第一名当然是java世界的apache。
  • 3 目前国内主流的CDN业务,后端几乎都是基于nginx开展的。
  • 4 nginx功能非常强大,支持正向代理,反向代理,缓存,负载均衡等许多功能。
  • 5 nginx可以很好的支持lua扩展,内部可以加载lua解释器,实现和lua语言的完美契合。目前好多功能都是在lua脚本中完成。
  • 6 nginx采用多进程的管理方式,一个master管理者,0个到多个worker工作者进程,所有具体业务都是有具体的worker来完成。master只负责管理和调度的职责。
  • 7 nginx采用管道的方式处理消息流,处理过程共分为11个阶段,每个消息都按顺序一个阶段一个阶段的执行,在其中某个阶段不满足条件后会提前结束。其中最出名的三个阶段分别是rewrite,access,content。rewrite就是对url进行内部处理,包括检查,修改属性,重新跳转等,access主要是实现访问控制等,content就是生成最后要发给用户的内容。
  • 8 nginx内部有很多数据结构,包括字符串,链表,哈希,以及radix_tree(之前用过)等,这些数据结构最好也好好掌握下。
  • 9 有一个开源项目叫openresty, 里面包含了nginx的核心和常用的第三方模块,想快速搭建可以参考。

以上就介绍了nginx学习(一),包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn