python - Flask 应用程序和 Node.JS 应用程序
问题描述
我为我们公司使用的系统编写了一个 Flask Web 应用程序。但是,我们还有另一个运行在 Node.JS 上的 Web 应用程序。“问题”是我的同事在节点上写所有东西,而我用 Python 写所有东西。
我们希望在一个网页上实现这两个应用程序 - 例如:
- 我的应用程序将在 example.com/assistant 上运行
- 他的应用程序将在 example.com/app1 和 example.com/app2 上运行
我们应该怎么做?我们能否以某种方式实现我与他的模板一起使用的模板,反之亦然?
先感谢您!
五
解决方案
为来自同一域的不同应用程序提供服务
您可以使用haproxy根据 ACL 规则将请求定向到特定服务。
您可以使用path_beg
规则将任何以特定路径开头的请求定向到相应的服务器。请参见下面的示例。
/etc/haproxy/haproxy.cfg
# only relevant part of the config file
# assumes all apps are on one machine
frontend http-in
bind *:80
acl py_app1 path_beg /assistant
acl node_app1 path_beg /app1
acl node_app2 path_beg /app2
default_backend main_servers
backend py_app1
server flask_app 127.0.0.1:5000
backend node_app1
server nodejs1 127.0.0.1:4001
backend node_app2
server nodejs2 127.0.0.1:4002
backend main_servers
server other1 127.0.0.1:3000 # nginx, apache, or whatever
在应用程序之间共享模板代码
这会更难,因为您需要就某种格式达成一致,这种格式需要与语言和框架无关,并且可能没有逻辑。
Mustache 声称是“呈现无逻辑视图的与框架无关的方式”。几年前我用过它,所以这是第一个想到的,但是你应该对此做更多的研究,也许有一些更合适的。
问题是实际上保持模板始终与应用程序同步,而不是破坏视图的功能。如果模板发生更改,则您需要测试使用此模板文件的所有应用程序。此外,您可能会在不同时间阻止彼此更新您的应用程序,因为如果你们中的一个人更改模板文件,那么您必须达成共识,更新所有相关应用程序,并同时部署它们。
推荐阅读
- python - 为什么我的 bot.get_user(user_id) 在 discord.py 中没有返回我?
- apache-superset - 为什么在 Apache Superset 中使用 SQL LAB 查询创建图表时会出现基本错误?
- python - 计算数据框中具有多列的成对行中的常见元素
- python - 减少 Google App Engine 部署时间?
- javascript - Javascript "+" 和 "-" 运算符的行为和用法
- postgresql - 使用 Prisma Migrate 运行集成测试时出错
- postgresql - 搜索 bigint 数组 posgreSQL 中是否存在任何子查询 bigint
- python - 为什么这会返回错误的最大值?
- python - Python:如何从特定行/列/行读取数据
- facebook - 如何添加缩略图预定的实时视频 facebook