Nginx 运行环境 (AppSpec)

此文档主要介绍如何在 InnerStack 上构建并部署 Nginx 1.18 运行环境。

编译 Nginx 包

Nginx 基于 C 编程语言开发,此实例在 CentOS 8 环境中编译打包。

将要构建两个原始包

  1. nginx 为 Nginx 包
  2. nginx-keeper 为 InnerStack 开发的 Nginx 配置工具

参考代码项目 https://github.com/inpack/nginx 开始构建

安装编译依赖

yum install readline-devel pcre-devel openssl-devel gcc curl

# 如果有遗漏的依赖包,请参考编译时提示信息自行添加

编译 nginx

注: 开始构建前,请确保你已经安装了 inpack 工具, 参考文档 inpack cli
git clone https://github.com/inpack/nginx.git
cd nginx

inpack build --spec inpack-1.toml --version 1.18.0

Building
  package: nginx
  version: 1.18.0
  release: 1
  dist:    el8
  arch:    x64
  vendor:  nginx.org
  OK
    nginx-1.18.0-1.el8.x64.txz

如果一切顺利,上传新构建的 inpack 原始包文件

inpack push --repo <your-alias-name> --pack_path nginx-1.18.0-1.el8.x64.txz 

PUSH /opt/src/inpack/nginx/nginx-1.18.0-1.el8.x64.txz
  ok nginx 100%

构建 nginx-keeper

安装必要的依赖:

# CentOS 8
yum install -y golang

# 如果有遗漏的依赖包,请参考编译时提示信息自行添加

inpack 编译打包

git clone https://github.com/inpack/nginx-keeper.git
cd nginx-keeper

inpack build --dist linux

Building
  package: nginx-keeper
  version: 0.9.0
  release: 1
  dist:    linux
  arch:    x64
  vendor:  sysinner.com
  OK
    nginx-keeper-0.9.0-1.linux.x64.txz

如果一切顺利,上传新构建的 inpack 原始包文件

inpack push --repo <your-alias-name> --pack_path nginx-keeper-0.9.0-1.linux.x64.txz 

PUSH /opt/src/inpack/nginx-keeper/nginx-keeper-0.9.0-1.linux.x64.txz
  ok nginx-keeper 100%

构建 nginx AppSpec 文件

AppSpec 通过登录 InnerStack inPanel 可视化 WebUI 管理 (https://ip-address:9530/in):

进入方式: Applications / AppSpec Center / New AppSpec / Advanced editing mode

将上面导出的 https://github.com/inpack/nginx.git 项目根目录 app-spec-nginx-v1.toml 文件内容复制到提交框并提交, 如下图:

app-new

注: 数据库配置逻辑入口在 AppSpec/Script Executors 实现, 可参考实例文件细节

如上步骤提交 AppSpec 后,就可以开始部署了.

部署

Step 1: New Instance

在 AppSpec List 找到 sysinner-nginx , 点击 “New Instance”

app-new

Step 2: 设置 Pod 容器

如下图, 系统会提示两个选项:

  1. 新建 Pod: 将这个 App 绑定到一个全新的 Pod 中运行
  2. 绑定到已有的 Pod: 一般用于 DevOps 开发,测试,生产环境推荐一个 App 对应一个 Pod.

app-new

这里选择新建 Pod Instance, 提示选择 Pod 规格:

app-new

确认 Pod 信息后继续下一步.

Step 3: 创建完成

成功后,会自动跳转到 Pod 详情,可以在这个页面里观察 AppSpec 在这个 Pod 里面的执行情况, 请等待一段时间,没有异常的话,Pod 详情页会出现更多有关这个 AppSpec 的信息,如图:

app-new

如图黄色框所示, 通过系统分配 http://ip:port 即可访问 web 服务.

app-new

Nginx 后续操作

Nginx 作为基础中间件,在实际应用中多数被业务系统通过依赖应用方式启用:

可以参考 Zentao 项目管理系统 实例配置 Nginx 作为 nginx/nginx-fpm 方式运行的详例。

注: 更多的操作信息请参考 https://nginx.org/

申明

  • InnerStack/AppCenter 旨在助力企业构建自主 PaaS 平台,InnerStack 自身不提供任何云服务
  • AppCenter 涉及的方案、文档、代码、数据旨在为企业构建业务系统过程中提供指导参考,这些 AppSpec 组件可能没有经过完整的功能配置、测试和安全审计, 请不要直接用于生产系统。
  • AppCenter 包含的第三方项目源码统一开放在 https://github.com/inpack