enginx:基于openresty,一个前后端统一,生态共享的webstack实现

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 本文关键字:openresty,enginx

本文关键字:openresty,enginx

webstack的前世今生就是一个重复造轮的过程,它的目标是将本地程序栈弄成分布式b/s web,其实这在语言端可以做(比如语言模块的http unit,然后是一层层我们从桌面时代开发最基本的socketapp开始,http封装之后也许是一个aysn网络io库,最终到达语言库级的webframework直到专门的独立程序支持,也许这个时候人们发现那个网络io库可以独立出来作为一个server,再比如第三方容器在这种需求下很容易出现,流控安全等需要也会泛滥),于是终于发展到用独立的服务器OS组件来实现这些强化,形成专门的产品来做,体现在开发上首先是webserver+CGI处理。web作为b/s在架构上假设有服务端程序存在,而cgi就是开发web程序的语言同webserver交互的扩展,动态语言将运行结果转成web page app的手段。像mod_swgi,mod_php就直接将phpcgi做到了语言。如webstack.语言则屈居之下。—— 这完全是语言,独立件,一方做大了包裹另一方的关系但二者始终是一体的。

以前webstack都是语言加各个产品小件的堆叠,像wamp,lemp,wapp,lnmp,mean…等,除去语言和OS服务这些大件,显然存在前后端,首先是page server,然后是存储后端。mysql,rawfilesystem,document stor(文档xml强调的是文档语义,能存文件和文档是其第二层含义)等。还有各种为了其它功能新加进来的增强件比如种新的本地/分布数据库memcached,本地件imagicx。。

PS:其实这些都是模拟桌面时代的appstack,人类其实在各层次复用同样的方法,解决方案和产品,形成各种类似appstack,webstack的其中明显二大件之前端部分模拟的是desktop app时代的page,后端模拟的是filesystem等等,毕竟是分布式中已经定义好b/s规范,连协议http都规范好了,有这二个产品,就足于构成一个webapp stack必须的界面和存储了,只要有app domain logic,就可以产生一个app了 —— 同道理的是mobile app那些,这里省略一W字……
以上备注栏里你看到了应用程序形成和选型历史的大架构,好了打住,继续:

存在几种流行的webserver(有的有容器比如tomcat支持,有的对语言支持好比如apache rewriter强大,etc..,有的功能单一,比如nginx静态页面友好在流量控制方面功能强大),人们有时还混合使用它们,这使得webstack前后端分区呈现更复杂的前前后,前中后,前中后后等结构。

这里要来说的是大头的nginx+apache

我们不需要apache

其实作为一个webserver,它的本质是流量引擎+webserver,当它与前端语言cgi沟通时,它就是webserver,当它负责与后端+前端一起上时,它就是流控引擎。很显然地,nginx最初的意义是分布式流量的“enginx”,在这种意义下,nginx能管好流控这是它最大的责任和优势,而apache显然做得有点过了:

apache并不仅是webserve其实它还提负容器的责任,这种在用户态重造一遍的事应该由语言层(比如msyscuione中的包管理或engitor as paas中的语言层来完成)。它跟nginx一样存在流控与各种语言对接的后端,然而它走的路子是,由语言来完成对数据库后端的对接,apache负责与语言沟通,这其实是webstack通用的设计和应用路径,只是这种情形下,webstack变得有点碎片。各种语言和存储组合起来就是一个webstack,,这样看似自由,实际只能二块二块地用,十分固定,于是你看到的不是wamp就是lemp,而meam这样的东西是不好用的。

总结:,我们没有一个一体的webstack生态圈产品,各个产品都是语言绑定的。具体前后端紧联系的。甚至系统绑定的。原因是,webstack中webserver的功能定义不清。

nginx=engin x: 强大,专一的流控单一,也是前后端开弓的中间单元

而对nginx的合理应用可以完成做到用nginx+其它产品打造一个干净的前后端:

nginx它没有容器不像apache,因为这是语言层要干的事。

在这点上,apache于webstack必须有的地方没有,nginx却全有。我们也不需要nginx+apache的架构。我们完成可以去掉apache,语言直接作为容器,nginx直接作为语言容器的前端,以direct servering langsys的路子进行。

而且nginx的流控实在是太强大了。它可以做到一体化流控(负载,访问点控制,QOS,反代)与安全服务器。

而且,lamp,wamp一条龙的webstack设计者们肯定没想到,nginx它不但可以server前端,它实际上也可以server后端,比如nginx直接与mysql构成不需要通过php的phpmyadmin版本。

这有什么意义呢?

它使WEB件,从语言件彻底分开,实现了诸如,提倡nginx前端直接与后端mysql等通讯,仅要求语言提供php-cgi之类的东西而不要求它们提供php-mysqli之类的东西,构架上清希化出了一个“整合的独立的,webstack”,而不再是分散的wamp,wemp,mean等等。从此不同的语言导致的开发,发布的,架构上的区别都不存在。都是一样的从nginx为入口的体系,它掩盖后端那些子件的复杂性和开发维护必要。更重要的意义:打造了一个干净的多语言webstack

大一统的webstack

openresty的架构有趣就在于此,它是个足够创意新奇,大一统的产品,它对前后端都进行绑定。

nginx之于db,storbackend(openresty一志整合),就像jupyter整合语言件backends。我们从此仅需要一套 “xny” webstack — x平台的y语言,及中间的nginx,就可以做到统一开发和发布,最最深远的意义还在于:有望借助enginx,所有web程序共享同样的产品生态,统一发布,无沟运维。

下载(本地下载):

以下提供下载的enginx,在openresty基础上做了适应msyscuione->各个langsys的适应。与engitor(paas)天然互补结合:一个提供语言与容器,一个提供安全和最终的paas服务。。


(此处不设回复,扫码到微信参与留言,或直接点击到原文)

qrcode.png

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
1月前
|
存储 SQL 缓存
构建高性能后端服务的策略与实践
【8月更文挑战第13天】在数字化时代,后端服务的高效性对于企业至关重要。本文深入探讨了如何通过合理设计、优化数据库操作以及应用缓存技术等策略来提升后端服务性能。同时,也强调了监控和调优的重要性,并指出了团队协作在性能优化中的作用。
39 3
|
2月前
|
消息中间件 缓存 安全
构建高效后端API的五大策略
【7月更文挑战第26天】在数字化时代的浪潮中,后端API作为连接数据与应用的桥梁,其性能直接影响用户体验和业务效率。本文将深入探讨如何通过五大策略优化后端API的设计和实现,旨在为开发者提供一套系统的方法论,以提升API响应速度、增强系统稳定性并确保可扩展性。我们将从API设计原则出发,逐步展开讨论缓存机制、数据库优化、异步处理、服务拆分与微服务架构,以及安全防护措施,帮助读者构建一个既高效又安全的后端API系统。
|
2月前
|
缓存 监控 中间件
中间件配置和管理问题
【7月更文挑战第14天】
40 1
|
4月前
|
缓存 负载均衡 监控
构建高性能的后端服务架构
在当今快速发展的技术环境下,构建高性能的后端服务架构变得至关重要。本文将探讨如何通过优化数据库设计、采用合适的缓存策略、以及合理使用负载均衡等方法来构建高性能的后端服务架构,以满足用户对于性能和稳定性的需求。
42 0
|
4月前
|
数据可视化 应用服务中间件 网络安全
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
Nginx Proxy Manager是一款强大的代理服务器管理工具,提供简单直观的界面来配置和管理Nginx代理服务器,帮助用户轻松提升配置的简洁性和便捷性。
179 0
简单易用的Nginx代理管理工具:体验便捷配置、高效管理
|
弹性计算 专有云 应用服务中间件
nginx在云平台服务几个典型代理场景中的应用案例
在云平台服务中有多种场景需要使用到反向代理,常见的应用场景包括:内网专有云平台访问公网资源、公有云平台访问客户内网IDC机房资源、云产品通过代理访问多个不同的资源等等。笔者总结几种场景配置nginx的7层反向代理、4层反向代理,巧妙实现应用需求。
nginx在云平台服务几个典型代理场景中的应用案例
|
小程序 前端开发 Java
【平台开发】技术整合思考(四)前后端不分离
【平台开发】技术整合思考(四)前后端不分离
204 0
|
前端开发 JavaScript Ubuntu
「技术架构」5分钟把前端应用程序部署到NGINX
「技术架构」5分钟把前端应用程序部署到NGINX
|
JSON 自然语言处理 前端开发
跨端架构下客户端侧API维护方案总结
淘宝App搜索业务侧采用的是局部动态化的跨端技术架构,客户端提供丰富的基础能力与视图组件的API,前端负责业务视图搭建与业务逻辑实现。
104 0
|
缓存 监控 DataWorks
巧用API网关构建大型应用体系架构
近期阿里云重磅发布了BizWorks一体化的云原生应用的开发和运营平台,内置阿里巴巴业务中台构建的最佳技术实践。它已经将API网关作为关键组件融入其中,并且基于API网关为用户提供能力开放平台。那么API网关是如何在BizWorks中起到作用?API网关在实际业务中又起到怎样帮助?本文就此展开详细说明。
309 0