低代码平台如何借助Nginx实现网关服务

代码,平台,如何,借助,nginx,实现,网关,服务 · 浏览次数 : 102

小编点评

**活字格网关服务器配置指南** **引言** 活字格是一款企业级低代码开发平台,提供一系列工具和服务,帮助开发者快速构建和部署 Web 应用程序。本文将介绍活字格中的网关服务器,以以Nginx为例,解释其用途和配置步骤。 **跨域访问** Nginx可以作为网关服务器,将多个应用共享同一个服务器的同一个端口。为了解决跨域访问的问题,可以使用多个 upstream 和 server 节点,分别处理不同的请求。 **白名单配置** 为了实现安全,可以设置白名单,只允许特定的 IP 地址访问应用服务器。这对于确保应用服务器只受信任的设备访问至关重要。 **访问日志** Nginx内置了一个日志机制,记录了应用服务器的访问信息。可以通过日志分析工具链进行分析,优化应用程序性能。 **配置文件设置** 以下是Nginx配置文件中的一些重要配置项: * `worker_processes`:指定使用的 worker 进程数量。 * `worker_connections`:指定允许使用的 worker 连接数量。 * `upstream`:配置应用服务器的 upstream 节点。 * `server`:配置应用服务器的 server 节点。 * `location`:配置访问日志的路径。 **附件** * Nginx.conf 文件:附件链接 **总结** 活字格网关服务器是用于构建安全和高效 Web 应用程序的关键组件。通过配置跨域访问、白名单和访问日志,可以实现对多个应用服务器的可靠性和安全性。配置文件设置可以根据机器配置进行调整。

正文

摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。

前言

在典型的系统部署架构中,应用服务器是一种软件或硬件系统,它承载着应用程序的核心逻辑。它接收客户端的请求并处理相应的业务逻辑、数据操作等任务。应用服务器通常被用于支持 Web 应用程序、移动应用程序和企业应用程序等。在应用服务器之上通常是网关服务器,在其下方是数据库服务。有趣的是,在低代码平台中,同样也存在应用服务器,今天小编将以葡萄城公司的企业级低代码开发平台——活字格为例给大家介绍网关服务器对于低代码平台的辅助作用。

使用Nginx实现的应用场景

在本文中,将以网关服务器Nginx为例,展示网关服务的四个场景:

  1. 跨域访问:让多个应用共享同一个服务器的端口。
  2. 静态资源:通过微信公众平台等验证。
  3. IP黑白名单:满足更高的安全防护要求。
  4. 访问日志:详细记录并分析系统响应能力。

1.跨域访问:让多个应用共享同一个服务器的同一个端口

将同一个系统的多个模块拆分成若干个应用,不论是开发管理还是系统运维都是很值得推荐的实践模式。但如果一个应用的前端页面需要调用另一个应用的服务端命令时,会遇到跨域访问的问题。为了解决这个问题,我们需要将这些跨应用调用的功能全部挪到服务端命令中:A应用的前端页面调用A应用的服务端命令,在该服务端命令中调用B应用的WebAPI。这种做法平添了开发A应用服务端命令的工作量,后期维护时也会有额外的工作和风险。

在编码开发时,通常是通过网关将所有应用统一到同一个地址和端口中,来避免这种跨域访问的问题。而在低代码开发中,解决的方式也是一样的。

在服务器上架设一台Nginx服务器,将多个应用作为Nginx的upstream。具体的配置方法如下:

(1) 修改Nginx配置,在http节点下方为管理控制台和每个应用配置一个upstream节点,包含机器名和端口号。在测试环境中,Nginx安装在应用服务器上,所以这里可以直接用localhost。常规情况下,Nginx需要部署到和应用服务器在同一个局域网内的另外一台服务器上,此时,需要将localhost替换为该服务器的内网IP。

提示:为应用服务器添加upstream而不是直接在location中跳转,可以提升配置文件的可读性。

upstream us-server{
     server localhost:22345;
   }

   upstream red-server{
     server localhost:9101;
   }

   upstream green-server{
     server localhost:9102;
   }

(2)在http→server节点中监听80端口或其他指定的端口号。

listen    80;

(3)在http→server节点中,为管理控制台和每个应用分别配置一个location节点,包含URL的匹配规则和对应的upstream。最常用的规则是从头开始匹配,即^~意味着以后面的字符串开头,如location ^~ /red/匹配到的是所有以/red/开头的location(URL中端口号后面的部分)。

 location ^~ /UserService/ {
       proxy_pass http://us-server/UserService/;
       proxy_redirect default;   
     }
 
 location ^~ /red/ {
   proxy_pass http://red-server/red/;
   proxy_redirect default;
 }
 
 location ^~ /green/ {
   proxy_pass http://green-server/green/;
   proxy_redirect default;
 } 

(4)在活字格管理控制台上,将应用的“域名”(应用管理→应用→常规设置→设置域名)修改为Nginx监听的端口,确保页面的外部导航正常运行。应用的配置中,需要包含应用名。

管理控制台的“域名”也需要设置(设置→安全设置→设置管理控制台站点的域名),控制台的配置不包含应用名。

扩展场景:
如果您的IT安全策略要求只能开放80/443端口,但需要访问到多个应用时,也可以用这个方案,实现端口统一化。

2.静态资源:通过微信公众平台等验证

在对接微信公众平台等第三方系统时,对方通常会提出基于文件的域名验证机制,如微信公众平台的JS接口域名验证需要将特定文件放到域名的根目录。

此时,可以使用网关的静态资源服务器能力,完成验证工作。

在【1.跨域访问】的基础上继续配置Nginx文件,具体的操作方法如下:

(1):在域名管理的界面上,通过ICP备案的域名指向Nginx服务器的外网地址。

(2):将需要对外提供访问的静态文件存放到Nginx服务器上Nginx静态资源根目录中,如/etc/Nginx/html(安装方式和版本不同,根目录还可能是/usr/share/Nginx/html或/var/www/html,默认情况下,Nginx根目录中有index.html和50x.html两个文件)。Nginx将根目录中的文件以Web静态资源的形式提供给外部使用。具体而言就是接收到URL为 /xxx.yyy 的请求时,将根目录中的xxx.yyy文件内容作为响应来返回。

3.IP黑白名单:满足更高的安全防护要求

对于一些高安全要求的应用场景,通常会要求做黑白名单,如仅允许特定的IP访问、或不允许某个特定的IP访问。这些工作推荐在网关上执行,将风险拦截在应用服务器之外。
因为活字格内置的管理控制台中包含了应用管理、用户角色管理等敏感操作,很多企业要求为该应用启用白名单控制,仅允许公司IT运维团队专用的IP地址访问。接下来,我们在【二、跨域访问】的基础上继续完善Nginx配置来实现白名单。具体的操作方法如下:

修改Nginx配置中http→server节点中找到管理控制台对应的location,在下面追加以下内容,将内网的10.32.209.252和外网的113.132.178.118添加到白名单。

 location ^~ /UserService/ {
       proxy_pass http://us-server/UserService/;
       proxy_redirect default;  
       allow 10.32.209.252;
       allow 113.132.178.118;
       deny all; 
     }

重要提示:
网关层面的白名单层次高于系统防火墙,两者不是取代关系。您依然需要使用防火墙的策略来避免暴露不必要的端口,以降低安全风险。

4.访问日志:详细记录并分析系统响应能力

当需要评估系统的响应性能、可用性等参数,寻找改进方向时,您需要通过第三方来记录应用的访问日志,然后将其接入主流的日志处理和分析工具链(日志分析是一个“高技术含量”的领域,已经有成熟的方案,如ELK)进行后续处理。

好消息是,Nginx内置了日志机制,只需要做非常简单的配置,就可以得到想要的日志,然后再按照ELK的帮助文档,就能搞定自己的日志分析平台了。继续在【3.IP黑白名单】的基础上继续完善Nginx配置和日志配置。具体的操作方法如下:

(1):修改Nginx配置中http节点,添加一个名为json的日志模板,便于filebeats抓取。

log_format json escape=json '{"time_local": "$time_local", '
              '"remote_addr": "$remote_addr", '
              '"request_uri": "$request_uri", '
              '"status": $status, '
              '"upstream_time": "$upstream_response_time"}';

(2):修改http→server节点,追加访问日志的配置,指定文件路径和刚才定义的名为json的模板access_log /var/log/Nginx/access.log json;

常用的日志项目和参数如下所示:

如果您对活字格感兴趣,可以点击这里了解关于活字格的详细信息:https://www.grapecity.com.cn/solutions/huozige
点击这里可以免费下载:https://www.grapecity.com.cn/solutions/huozige/download

总结

本文中用到的配置文件如附件链接,采用了最简单的配置方式。其中,worker_processes 和 worker_connections 与资源占用和性能相关。请根据机器配置情况进行适当调整。

附件链接(Nginx.conf):https://gcdn.grapecity.com.cn/forum.phpmod=attachment&aid=MjkzOTY0fGEwYWYyMWE4fDE2OTUxODg0NjZ8ODE2MDZ8MTg2NjYy

扩展链接:

从表单驱动到模型驱动,解读低代码开发平台的发展趋势

低代码开发平台是什么?

基于分支的版本管理,帮助低代码从项目交付走向定制化产品开发

与低代码平台如何借助Nginx实现网关服务相似的内容:

低代码平台如何借助Nginx实现网关服务

摘要:本文由葡萄城技术团队于博客园原创并首发。转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 前言 在典型的系统部署架构中,应用服务器是一种软件或硬件系统,它承载着应用程序的核心逻辑。它接收客户端的请求并处理相应的业务逻辑、数据操作等任务。应用服务器通常被

如何在低代码平台中引用 JavaScript ?

引言 在当今快速发展的数字化时代,企业对业务应用的需求日益复杂且多元。低代码开发平台作为一个创新的解决方案,以直观易用的设计理念,打破了传统的编程壁垒,让非技术人员也能轻松构建功能完备的Web应用程序,无需深入编码。这一特性极大地简化了应用开发流程,加速了业务需求转化为实际应用的速度,为企业带来了前

vivo 低代码平台【后羿】的探索与实践

本文主要从前后端分离的低代码方案、自研高性能渲染引擎、高效的可视化配置方案、千亿级内容投放、低代码如何与传统开发共存等五个维度vivo在低代码平台方面的实践经验,其中也会涉及到动态交互如何运用低代码来编排和我们在提高配置效率方面的全面探索。

vivo 游戏中心低代码平台的提效秘诀

本文首先介绍背景与痛点,然后阐述了vivo互联网游戏中心是如何搭建低代码平台,最后展示了低代码平台带来的收益和未来建设方向。

表单引擎字段类型该如何设计?

在软件行业的发展过程中,从业者对于开发效率和质量提升是一直在追随的一个目标。通过复用软件模块来实现这些目标通常是一种有效的手段,从头文件引入、面向对象的封装、动态库的引入、代码生成器类工具、低代码引擎等,随着行业技术发展能复用的层次也从底层的文件逐步到界面层面的复用。本文主要围绕在OA、低代码平台中

远离勒索病毒,如何在Linux上安装活字格低代码服务管理器?

本文由葡萄城技术团队于博客园原创并首发 转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 活字格低代码开发平台由可视化设计器和服务管理器构成,开发者使用设计器构建Web应用,测试无误后即可将应用进行打包,并发布到服务管理器上。服务管理器会加载设计器发布的应用

活字格性能优化技巧(1)——如何利用数据库主键提升访问性能

本文由葡萄城技术团队于博客园原创并首发转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 大家都知道,活字格作为企业级低代码开发平台,拥有6大引擎,3大能力,能够高效落地企业级应用。在每年的应用大赛中也能看到很多格友利用活字格做了很多复杂的应用,例如2021年

万物皆可集成系列:低代码对接阿里物流API实现快递跟踪

随着各大电商网购平台的发展,快递业已形成一个规模庞大的产业,据统计,全球快递企业已超过千家,而快递查询对于电商平台而言是最基础的功能之一,通过输入快递单号,不用区分具体是哪家快递公司,即可查询到快递的实时状态。目前的主流方法都是调用第三方快递查询接口,下面就介绍一下在活字格中如何调用API接口来进行

Ui2Code+ChatGPT助力低代码搭建

低代码开发平台(LCDP),是低代码或无代码通过快速搭建配置的方式完成一个应用程序的开发与上线,可视化低代码就是可视化的DSL,它的优点更多的是来源可视化,相对的,它的局限性也还是来源于可视化,复杂的业务逻辑用低代码可能会更加复杂。低代码应该是特定领域问题的简化和抽象,如果只是单纯将原有的编码工作转换为 GUI 的模式,并没有多大意义。

华为云低代码技术:让矿区管理“智变”,一览无遗

摘要:基于华为低代码平台,万洲嘉智复用开发了9个数字化管理功能,成功解决了矿区管理的空区和难点,帮助煤矿园区实现了智能化管控。 本文分享自华为云社区《【云享·伙伴】第10期:华为云低代码技术:让矿区管理“智变”,一览无遗》,作者:华为云社区精选。 “路口禁止停车,请司机师傅尽快驶离路口”。坐在监控管