Nginx的衍生生态有哪些
-
很多人可能或多或少了解过nginx,即使没有使用过nginx,但是可能用Apache搭建过简单的web服务器,用tomcat写过一些简单的动态页面,其实这些功能nginx都可以实现。
nginx最重要的三个使用场景个人认为是静态资源服务、反向代理服务和api服务。
web请求走进服务以后会先经过nginx再到应用服务,然后再去访问redis或者mysql提供基本的数据功能。这就有个问题,应用服务因为要求开发效率高,所以他的运行效率是很低的,他的qbs,tps并发都是受限的,所以就需要把很多的应用服务组成集群,向用户提供高可用性。
很多服务构成集群的时候,需要nginx具有反向代理的功能,可以把动态请求传导给对应的应用服务。服务集群一定会带来两个需求,动态的扩容和容灾。
反向代理必须具备负载均衡的功能,其次在链路中,nginx是处在企业内网的边缘节点,随着网络链路的增长,用户体验到的时延会增加。把一些所有用户看起来不变的,或者在一段时间内看起来不变的动态内容缓存在nginx部分,由nginx直接向用户提供访问,用户的时延就会减少很多。
反向代理衍生出另外的功能叫缓存,他能够加速访问,而很多时候在访问像css或js文件又或者一些小图片是没有必要由应用服务来访问的,他只需要直接由nginx提供访问就可以了这就是nginx的静态资源功能。
应用服务它本身的性能有很大的问题,数据库服务要比应用服务好的多,原因是数据库他的业务场景比较简单,并发性能和tps都要远高于应用服务。由nginx直接去访问数据库或者redis也是不错的选择。
还可以利用nginx强大的并发性能,实现如web防火墙的一些业务功能,这就要求nginx服务有非常强大的业务处理功能,openResty和nginx集成了一些工具库来实现此功能。
![ea4f824a-f92d-440e-9c27-1543df443c2f-image.png]
西南地区IT社群(QQ)
- 云南
- 【昆明网页设计交流吧】243627302
- 【昆明nodejs交流吧】 243626749
- 【VUE】838405306
- 【云南程序员总群】343606807
- 【昆明UI设计】104031254
- 【云南软件外包】15547313
- 贵州
- 【PHP/java源码/站长交流群】55692114
- 四川
- 【成都Java/JavaWeb交流】86669225
- 【vaScript+PHP+MySql】116270060
- 【UI设计/设计交流学习群】135794928
- 重庆
- 【诺基亚 JAVA游戏博物馆】 559479780
- 【PHP,Java,Python,C++接单】 442103442
- 西藏