基于TSF Mesh的前端静态资源托管
最近更新时间: 2024-10-17 17:10:00
操作场景
该任务指导用户依托 TSF Mesh 技术以服务形式托管 Node.js 和 Nginx,最终验证 Node.js 与 Nginx 可以以服务形式注册、发现及成功调用。概要架构图如下:
Nginx:前端资源托管。
Node.js:后端服务。
Sidecar:和服务运行在同一个 Pod 中,与 Pod 共享网络,服务感受不到 Sidecar 的存在。
Sidecar 代理服务向注册中心注册服务相关信息,以便其他服务发现自身。
Sidecar 作为 Pod 内服务的 HTTP 代理,可以自动发现其他服务。
Consul Cluster:管理和配置 Sidecar 来执行策略并收集遥测。
操作步骤
步骤1:部署 Node.js 服务
准备 Node.js 应用代码。 可参考 Demo 中配置文件进行构建,其它语言的 TSF Mesh 的 Demo 示例可参考 【TSF Mesh Demo】 。
制作 Node.js + express 应用镜像
上传到镜像仓库 。
部署 Node.js 应用:
【创建应用】 应用类型选择 Mesh 应用。
在左侧导航栏选择【部署组】>【新建部署组】,创建 Node.js 的部署组。
在部署组页面,选择部署组右侧操作列的【部署应用】,选择刚刚创建的镜像,设置部署相关信息。
步骤2:托管前端静态资源
手动在云服务器上安装 Nginx,详细操作请参考 Nginx 官网的 安装说明。
准备程序包。程序包的目录为:
www
目录:该目录名可任意,用于存放 Web 静态资源文件。start.sh
脚本:将 www 目录下文件移动到 Nginx 站点目录下,同时启动 Nginx 服务。stop.sh
脚本:停止 Nginx 服务。cmdline
文件:检查 Nginx 进程是否存在的grep
命令关键字。
用户可参考 [nginx_demo](https://tsf-doc-attachment-1300555551.cos.ap-guangzhou.myqcloud.com/nginx_demo.zip) 了解各文件的具体作用和写法。
根据 Dockerfile 生成本地镜像并上传到腾讯镜像仓库。
部署 Nginx 应用:
【创建应用】 应用类型选择 Mesh 应用。
在左侧导航栏选择【部署组】>【新建部署组】,创建 Node.js 的部署组。
在部署组页面,选择部署组右侧操作列的【部署应用】,选择刚刚创建的镜像,设置部署相关信息。
步骤3:测试 Node.js 服务和 Nginx 服务之间的调用
通过外网 IP 访问测试 Node.js 应用。
通过外网 IP 访问测试前端静态资源。
在 Node.js 服务容器内 curl 访问 Nginx 服务。
sudo docker ps #查找容器id
sudo docker exec -it cfa4343f4a22 /bin/bash #进入容器内部
在 Node.js 服务容器内 curl 访问 Nginx 服务成功。