前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >nginx教程之初窥门径

nginx教程之初窥门径

作者头像
章鱼喵
发布2019-04-18 16:44:05
3780
发布2019-04-18 16:44:05
举报
文章被收录于专栏:coding

nginx诞生记

牛人与普通人的区别在于:前者遇到不爽的事,二话不说,自己动手解决;普通人要么骂骂咧咧,要么置于不理,眼不见为净。当然,这并没有什么不好,这个世界就是需要普通人占据绝大多数,才能衬托出牛人的伟大。

伊戈尔·赛索耶夫就是一个牛人(战斗民族的名字,不是什么夫,就是什么斯基),当年他在rambler.ru这个号称战斗民族访问量第二大的网站工作时,为了提升网站的访问速度,就自己写了一个高性能的web服务器,从此,这个名为nginx的web服务器就成为万千程序员的利器。

在nginx的众多追捧者中,淘宝是其死忠粉,在此基础上开发了Tengine

nginx的特性

  • 模块化设计

模块化意味着有较好的扩展性

  • 高可靠

工作原理是:由master主进程负责解析配置文件以及生成worker子进程; worker进程有不同的种类,职责各有不相同,有些负责响应请求, 有些负责缓存等

  • 低内存消耗

一个线程可响应多个请求,据说10000个keep-alive(保持连接)下的connection, 仅需要2.5MB的内存。

虽然还不太明白,但看起来就觉得很厉害的样子

  • 支持热部署

能够在不停机的前提下更新配置文件、日志文件滚动、升级程序版本。可以类比为在空中给飞机进行加油

nginx基本功能

  • 静态资源的web服务器,能缓存打开的文件描述符

这是nginx最基本的功能

  • 作为http smtp pop3这三种协议的反向代理服务器

反向代理可以简单地类比为中间人。中间人可以有多个层级。如:你要买西兰花,不需要去菜地跟农民交易,只需要去市场找菜贩买菜,而菜贩可能是跟蔬菜批发商拿货的,批发商才是直接与菜农交易

在这整个过程中,你是发起请求的客户端,菜农是最终提供服务的服务器,但你们并不需要见面,甚至不需要知道对方的存在,只需要与你们的上下游对接即可。中间商就是反向代理服务器,起到的是接收请求--转发请求--接收响应--发送响应的作用。

  • 支持缓存和负载均衡机制

nginx可以接受很多个请求,但请求的处理需要多台服务器

场景类比:1个服务员可以接待100个人,但厨师一人只能做20人的菜,那就需要加5个厨师。服务员就是反向代理器,厨师就是服务器,反向代理负责接收并分发请求,服务器提供数据,请求过大时只需要新增服务器即可

image

  • 支持FastCGI(fpm, lnmp),uWSGI(python)
  • 模块化、过滤器、ssi、图像的大小调整
  • 支持ssl,从而支持https服务

nginx扩展功能

  • 基于名称和IP的虚拟主机
  • 支持keepalive
  • 支持平滑升级
  • 定制访问日志, 支持使用日志缓冲区提供日志存储性能
  • 支持 url rewrite
  • 支持路径别名
  • 支持基于ip及用户的访问控制
  • 支持速率限制、支持并发数限制
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019.04.10 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • nginx诞生记
  • nginx的特性
  • nginx基本功能
  • nginx扩展功能
相关产品与服务
负载均衡
负载均衡(Cloud Load Balancer,CLB)提供安全快捷的流量分发服务,访问流量经由 CLB 可以自动分配到云中的多台后端服务器上,扩展系统的服务能力并消除单点故障。负载均衡支持亿级连接和千万级并发,可轻松应对大流量访问,满足业务需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档