云服务器内容精选
-
操作步骤 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“权限管理”,切换到“权限管理”页面。 根据使用场景为各角色配置相应操作权限,请根据实际情况进行设置。查看应用级默认权限。 表示权限已开启,去勾选可关闭权限。 表示权限已关闭,勾选可开启权限。 表示权限已开启,且不可修改。 开启“使用项目权限配置”后,该页面的权限信息都不可修改。 应用创建者、项目管理员的权限不能修改。 如果当前用户没有“修改”权限则不能进入编辑页面。 如果当前用户有“修改”权限,但没有“权限管理”权限则无法编辑其他权限。 项目管理员(项目创建者和项目经理)支持自定义角色功能,可对自定义角色的权限进行编辑。 修改完所有信息,单击“保存”,保存该应用。
-
操作步骤 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“通知订阅”,即可切换到“通知订阅”页面。 设置应用相关事件的通知,请根据实际情况单击(表示开启)/(表示关闭)进行设置。 邮件动态:提供应用动态邮件推送能力,以发送邮件的形式,向应用创建者、执行者和已收藏该应用的成员发送应用动态。 钉钉:提供应用动态钉钉推送能力,填写webhook地址,勾选可触发 消息通知 的应用运行状态,配置通知内容即可。 企业微信:提供应用动态企业微信推送能力,填写webhook地址,勾选可触发消息通知的应用运行状态,配置通知内容即可。 启用加签秘钥:若钉钉自定义机器人安全设置开启加签,请填写加签秘钥。若未使用加签,无需填写加签秘钥。 修改完所有信息,单击“保存”,保存该应用。
-
步骤详情 表1 参数说明 参数项 说明 步骤显示名称 该参数项为必填项。步骤显示名称添加后,会在部署步骤编排区显示该名称。 说明: 步骤名可包含汉字、大小写字母、数字、中划线、下划线、逗号、分号、冒点、/、圆括号(中英文)及空格,但不能以空格开头或结尾,长度为1-128。 Manifest文件来源 该参数项为必填。包括“制品仓库”、“代码仓库”和“obs”三种类型选择。当前情况是已选择“制品仓库”类型。 Manifest文件 该参数项为必填。选择需要部署的Manifest文件,这些文件必须以.yaml、.yml或.json为后缀。 单击按钮,可进入Manifest文件选择页面,选择制品仓库中需要部署的Manifest文件。其中,所属项目默认不可更改,可根据关键字进行Manifest搜索,也可先上传本地Manifest文件到仓库,单击按钮,刷新仓库的文件再选择。选择好Manifest文件后,单击按钮,结束Manifest文件选择。 部署租户 该参数项为必填。包括两个选择: 当前租户:表示将软件包部署到当前租户的CCE集群中发布。 选择“当前租户”,当前租户需要有CCE集群操作权限,如果当前没有CCE集群操作权限,可以通过下方的 IAM 授权选择已有权限的授权用户进行部署。 其他租户:表示通过IAM授权方式将软件包部署到其他租户的CCE集群中发布。 选择“其他租户”,则必须选择授权租户进行CCE集群部署。 说明: 推荐配置拥有CCE集群操作权限的子账号的AK/SK,不推荐配置租户账号的AK/SK。 IAM授权 该参数项为非必填。如果当前用户无操作权限执行接口时,可通过IAM授权获取到其他用户的临时AK/SK去执行CCE接口。 区域 选择要部署的区域。 集群名称 选择CCE云容器引擎中申请的K8S集群。 命名空间名称 选择CCE云容器引擎中K8S集群的命名空间。 JAVA探针 可协助您快速进行工作负载的问题定位与性能瓶颈分析,详情可参考性能管理配置(性能瓶颈分析) 。 重启自动升级:每次都尝试重新下载镜像。 重启手动升级:如果本地有该镜像,则使用本地镜像,本地不存在时下载镜像。 控制选项 当前步骤部署失败后,应用是否继续部署后续的步骤。 超时时间 指定该步骤最大执行时间,时间单位为分钟。在手动停止应用之前,执行时长大于超时时长,系统将该步骤设置为执行超时状态。取值范围:1-30 。
-
Manifest文件在线编辑 当“Manifest文件来源”为“代码仓库”时,将支持Manifest文件在线编辑功能,单击“Manifest文件”旁的图标,进入在线编辑界面。 修改代码托管中的Manifest文件需要具有相应的角色权限,请参考 代码托管服务 “仓库成员权限”章节。 单击图标,将对Manifest文件的内容进行基本的语法校验,便于您更好地优化代码。 单击图标,将对Manifest文件的内容进行基本的格式优化。 单击图标,将对Manifest文件的内容进行全量复制。 单击图标,将全屏展示Manifest文件的内容,便于您更好地浏览代码。
-
参数使用 下面以具体示例演示介绍如何使用自定义参数。 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“参数设置”,切换到“参数设置”页面,分别创建环境、枚举、字符串三种类型的自定义参数并打开“运行时设置”。 单击“部署步骤”,切换到“部署步骤”页面,在步骤详情中引用自定义参数。 参数引用形式:${参数名},在参数输入框输入“$”符号后会自动出现已创建的参数列表,根据需要选择对应参数。 例如,配置“选择软件包”项时,可以输入“$”符号带出已配置好的“package_url”参数,并选择该参数。 单击“保存并部署”,在弹窗中可重新对参数进行赋值。 单击“确定”,保存并部署该应用。 在流水线关联应用的时候,可将参数动态绑定; 在运行流水线的时候,输入的参数值会替换到应用中并运行; 在流水线中添加一个类型为部署的任务步骤,选择已配置运行时设置参数的应用,运行流水线时可动态设置。
-
创建并配置参数 介绍应用中自定义参数的创建和配置。 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“参数设置”,切换到“参数设置”页面。 参数信息说明如下: 基本信息 说明 新建参数 单击“新建参数”,可以新增参数。 名称 参数名称。可修改自定义参数名称。 说明: 自定义参数名称不可与系统预定义参数名称相同。 类型 参数可选类型,包括:字符串类型、枚举类型和环境类型。 默认值 根据需要填写/选择参数值。 说明: 选择环境类型时,如果没有环境,需要手动新建环境。 私密参数 参数为私密参数时,系统会将输入参数做加密存储,使用时进行解密,不可设置“运行时设置”。 运行时设置 打开“运行时设置”开关,表示部署应用时支持变更参数值,并且也会把该参数上报应用。运行时参数需要执行时输入。 参数描述 对本参数的描述。 操作 单击参数所在行,可以删除该参数。 单击“新建参数”,新增一个参数,根据需要自定义参数名称、类型(默认为“字符串”类型)、默认值,设置私密参数及运行时设置等。 字符串类型 参数值为字符串,可在“默认值”列自定义参数值,设置私密参数及运行时设置等。 枚举类型 选中枚举类型后弹出“枚举”对话框,可以设置“可选取值”,如需设置多个,可单击图标添加。如需删除,可单击图标移除。 设置完成后,在“默认值”列的下拉列表选择其中一个值,如下图。 环境类型 该类型参数通过“默认值”列下拉列表选择环境,下拉列表中可选所在应用下创建的所有环境。 如果下拉列表没有可选项,需要在“环境管理”页签新建环境,新建完成后回到参数配置页面,然后单击刷新,将新的环境刷新到下拉列表中即可使用。 修改完所有信息,单击“保存”,保存该应用。
-
编辑参数 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“参数设置”,切换到“参数设置”页面。 编辑参数 可对已有参数的参数名称、类型、默认值、私密参数、运行时设置、参数描述进行编辑。并可通过单击图标,拖拽参数行,移动参数顺序。 新增参数 单击“新建参数”,可在已有参数的基础上新增参数。同样单击参数操作列的图标,可在当前参数下方,新增一行参数并设置。 删除参数 单击图标,可对已有参数进行删除。
-
操作步骤 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 添加部署步骤: 单击已添加部署步骤上方或者下方的,页面右侧显示可添加的所有部署步骤,可在当前部署步骤前后添加新的部署步骤。 修改部署步骤详情: 单击目标部署步骤,在界面右侧修改部署步骤详情信息。 复制/删除/禁用部署步骤: 单击图标,单击“复制”,复制该部署步骤到当前应用下。 单击图标,单击“删除”,从当前应用中删除该部署步骤。 单击图标,单击“禁用”,在当前应用中禁用该部署步骤。 调整部署步骤执行顺序: 通过拖拉拽的方式,任意调整部署步骤的执行顺序。 修改完所有信息,单击“保存”,保存该应用。
-
编辑应用基本信息 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“基本信息”,切换到“基本信息”页面,可根据需要对名称、描述、执行主机等信息进行修改。 表1 参数说明 参数项 说明 名称 必填。应用的名称。 所属项目 默认。该应用的归属项目。如果账号下没有项目请您在项目选择框中选择“新建项目”会先弹出“新建项目”页面,这时建立的项目是Scrum。 描述 可选。对应用的描述。 执行主机 可选。资源池是部署软件包时执行部署命令的物理环境的集合,您可以使用华为云托管的官方资源池,您也可以将自有的服务器作为自托管资源池托管到华为云,托管方式请参考自托管资源池场景。 来自流水线 可选。开启后,只能通过流水线驱动执行,不能单独执行。 注意:如果租户账号已配置“全内网安全访问”功能(仅限白名单用户使用),则“执行主机”功能默认选择“自托管资源池”且不可更改。 修改完所有信息,单击“保存”,保存该应用。
-
操作步骤 选择目标应用,单击图标,单击“编辑”,进入“部署步骤”页面。 单击“环境管理”,切换到“环境管理”页面。 新建环境。 单击“新建环境”,填写以下信息后,单击“保存”,完成环境的创建。 参数项 是否必填 说明 环境名称 是 请输入自定义的环境名称。 资源类型 是 根据您即将部署的环境,可选择“主机”或“Kubernetes”(即将上线)。 操作系统 是 根据即将添加主机的操作系统,可选择“Linux”或“Windows”。 描述 否 请输入对环境的描述。 单击“导入主机”,系统已自动筛选符合当前环境的所有集群,在弹框中选择目标主机集群,可通过以下方式将主机导入环境中。 单独导入:单击某个主机操作列的图标,即可将该主机导入环境中。 批量导入:选中多个主机,单击“导入”,即可将主机批量导入环境中 当选择已绑定代理主机的目标主机进行导入时,该目标主机绑定的代理主机会一同被导入环境中。 (可选)主机导入成功后,可单击页面图标,进行连通性验证。 编辑环境。 对环境进行编辑。 对主机集群进行编辑。 编辑环境:单击某个环境操作列的图标,即可修改环境名称以及描述等信息。 删除环境:单击某个环境操作列的图标,在弹框中单击“确认”,即可完成删除环境操作。 权限管理:单击某个环境操作列的图标,为各角色配置相应操作权限,请根据实际情况开启或关闭权限。 主机集群默认权限说明 角色/权限 查看 编辑 删除 部署 权限管理 环境创建者 有权限且不可修改 有权限且不可修改 有权限且不可修改 有权限且不可修改 有权限且不可修改 项目创建者 有权限且不可修改 有权限且不可修改 有权限且不可修改 有权限且不可修改 有权限且不可修改 项目经理 有权限 有权限 有权限 有权限 有权限 产品经理 有权限 无权限 无权限 无权限 无权限 测试经理 有权限 无权限 无权限 无权限 无权限 运维经理 有权限 有权限 有权限 有权限 有权限 系统工程师 有权限 有权限 有权限 有权限 无权限 Committer 有权限 有权限 有权限 有权限 无权限 开发人员 有权限 有权限 有权限 有权限 无权限 测试人员 有权限 无权限 无权限 无权限 无权限 参与者 有权限 无权限 无权限 无权限 无权限 浏览者 有权限 无权限 无权限 无权限 无权限 对环境下的主机进行编辑。 批量主机连通性验证:选中多个主机,单击页面图标,可进行批量连通性验证。 启动连通性验证:单击某个主机操作列的图标,即可启动该主机进行连通性验证操作。 删除主机:单击某个主机操作列的图标,单击“删除”,在弹框中单击“确认”,即可完成删除主机操作。 代理主机不支持删除操作,当代理主机所代理的最后一台目标主机从环境中删除时,该代理主机会同步被删除。 修改完所有信息,单击“保存”,保存该应用。
-
步骤详情 表1 参数说明 参数项 说明 步骤显示名称 步骤添加后在部署步骤显示的名称。仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 部署租户 当前租户:表示将软件包部署到当前租户的CCE集群中发布。 选择“当前租户”,当前租户需要有CCE集群操作权限,如果当前没有CCE集群操作权限,可以通过下方的IAM授权选择已有权限的授权用户进行部署。 其他租户:表示通过IAM授权方式将软件包部署到其他租户的CCE集群中发布。 选择“其他租户”,则必须选择授权租户进行CCE集群部署。 说明: IAM授权 如果当前用户无操作权限执行接口时,可通过IAM提权获取到其他用户的临时AK/SK去执行CCE接口。 区域 选择要部署的区域。 集群名称 选择CCE云容器引擎中申请的K8S集群。 命名空间名称 选择CCE云容器引擎中K8S集群的命名空间。 工作负载名称 选择需要部署的工作负载。 实例数量 填写需要部署的实例数量。 说明: 若实例数量输入为空,则自动适配CCE集群实时实例数量。 容器名称 选择需要部署的容器实例名。 镜像名称 选择需要部署的镜像。 镜像版本 选择需要部署的镜像版本。 容器规格 可配置目标工作负载中的目标容器的容器规格。 CPU配额 配额申请:容器使用的最小CPU需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配CPU总量 ≥ 容器CPU申请数时,才允许将容器调度到该节点。 配额限制:容器能使用的CPU最大值,如果CPU使用值大于限制值,则容器使用CPU资源可能会被限流。 内存配额 配额申请:容器使用的最小内存需求,作为容器调度时资源分配的判断依赖。只有当节点上可分配内存总量 ≥ 容器内存申请数时,才允许将容器调度到该节点。 配额限制:容器能使用的内存最大值。当内存使用率超出设置的内存限制值时,该实例可能会被重启进而影响工作负载的正常使用。 环境变量 支持配置目标工作负载中的目标容器的环境变量 支持获取容器实时环境变量并同步到当前页面,同步后将覆盖本页面原有环境变量。 JAVA探针 可协助您快速进行工作负载的问题定位与性能瓶颈分析,详情可参考性能管理配置(性能瓶颈分析) 。 重启自动升级:每次都尝试重新下载镜像。 重启手动升级:如果本地有该镜像,则使用本地镜像,本地不存在时下载镜像。 控制选项 当前步骤部署失败后,应用是否继续部署后续的步骤。 超时时间 指定该步骤最大执行时间,时间单位为分钟。在手动停止应用之前,执行时长大于超时时长,系统将该步骤设置为执行超时状态。取值范围:1-30 。
-
配置应用部署步骤并部署应用 配置应用部署步骤。 切换到“部署步骤”页签,单击“编辑”对部署步骤进行参数配置。 安装JDK 表2 安装JDK参数说明 参数项 是否必填 说明 步骤显示名称 是 步骤添加后在部署步骤显示的名称。 仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 环境 是 选择当前资源类型为主机集群的环境,作为部署对象。 jdk版本 是 选择要安装的jdk版本。 jdk安装路径 是 jdk的安装路径。 控制选项 否 配置是否启用该操作。 当前步骤部署失败后,应用是否继续部署后续的步骤。 配置是否使用sudo权限部署该步骤。 安装Tomcat 表3 安装Tomcat参数说明 参数项 是否必填 说明 步骤显示名称 是 步骤添加后在部署步骤显示的名称。 仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 环境 是 选择当前资源类型为主机集群的环境,作为部署对象。 tomcat版本 是 选择要安装的tomcat的版本号。 安装路径 是 tomcat的安装路径。 http端口 是 默认为8080。 ajp端口 是 默认为8009。 shutdown端口 是 默认为8005。 控制选项 否 配置是否启用该操作。 当前步骤部署失败后,应用是否继续部署后续的步骤。 配置是否使用sudo权限部署该步骤。 停止Tomcat服务 表4 停止Tomcat服务参数说明 参数项 是否必填 说明 步骤显示名称 是 步骤添加后在部署步骤显示的名称。 仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 环境 是 选择当前资源类型为主机集群的环境,作为部署对象。 服务操作类型 是 配置启动服务或者停止服务。 服务对应的绝对路径 是 Tomcat服务的路径。 控制选项 否 配置是否启用该操作。 当前步骤部署失败后,应用是否继续部署后续的步骤。 配置是否使用sudo权限部署该步骤。 选择部署来源 表5 选择部署来源参数说明 参数项 是否必填 说明 步骤显示名称 是 步骤添加后在部署步骤显示的名称。 仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 选择源类型 是 包括“制品仓库”和“构建任务”两种类型。 环境 是 选择当前资源类型为主机集群的环境,作为部署对象。 选择软件包 是 可以选择制品仓库已有软件包,也可以选择本地上传的软件包/文件。 package_url是软件包在制品仓库中的路径。 说明: 本地上传的软件包/文件会上传到到制品仓库,可以重复使用。 下载到主机的部署目录 是 软件包下载后的路径。 控制选项 否 配置是否启用该操作。 当前步骤部署失败后,应用是否继续部署后续的步骤。 配置是否使用sudo权限部署该步骤。 此处的部署来源以选择“制品仓库”为例,进行相应的参数说明。如部署来源选择“构建任务”,相关信息可参考用户指南里选择部署来源章节。 启动Tomcat服务 表6 启动Tomcat服务参数说明 参数项 是否必填 说明 步骤显示名称 是 步骤添加后在部署步骤显示的名称。 仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 环境 是 选择当前资源类型为主机集群的环境,作为部署对象。 服务操作类型 是 配置启动服务或者停止服务。 服务对应的绝对路径 是 Tomcat服务的路径。 http端口 是 Tomcat服务监听的http端口。 ajp端口 是 Tomcat服务监听的ajp端口。 shutdown端口 是 Tomcat服务监听的shutdown端口。 等待时间 是 等待已设置的时长后将监测服务是否已成功启动。可根据服务启动实际所需时间进行调整,如时间设置不合理,会导致检测结果无效。 输入限制:0-300,单位“秒”。 组件监控 否 配置是否启用应用运维服务( AOM ),该服务提供指标监控、日志查询、告警功能(勾选后自动安装数据采集器 ICAgent,仅支持华为云linux主机,且与此应用在同一region下),详细请参见配置组件监控。 服务关联组件 是 如勾选“组件监控”,则会配置此项参数。 此处选择或新建当前启动服务需要关联的组件。 日志路径 否 如勾选“组件监控”,则会配置此项参数。 填写服务的日志文件路径。日志文件仅支持以.log、.trace和.out结尾的文件,可以配置文件夹路径,且最多配置10个路径 控制选项 否 配置是否启用该操作。 当前步骤部署失败后,应用是否继续部署后续的步骤。 配置是否使用sudo权限部署该步骤。 URL健康测试 表7 URL健康测试参数说明 参数项 是否必填 说明 步骤显示名称 是 步骤添加后在部署步骤显示的名称。 仅支持汉字、英文字母、数字、空格、或-_,;:./()()符号,其中空格不可在名称开头或结尾使用,长度为1-128。 环境 是 选择当前资源类型为主机集群的环境,作为部署对象。 重试次数 是 失败后重试次数,超过重试次数服务未启动会导致URL检测失败。 间隔时间 是 两次重试的间隔时间。 输入限制:0-60,单位“秒”。 测试路径 是 待测试服务的路径,可以添加多个。 控制选项 否 配置是否启用该操作。 当前步骤部署失败后,应用是否继续部署后续的步骤。 ”URL健康测试”的参数填写完成后,即完成了所有的参数配置。更多应用配置请参考配置CodeArts Deploy应用的参数。 部署应用。 配置好上述参数后,单击“保存并部署”即可开始部署应用。 应用部署成功。 应用部署失败时,可参考以下流程排查原因。 查看自动匹配解决方案 如果应用部署失败,可单击原子操作下的“查看解决方案”,前往对应的帮助中心页面。 手动搜索解决方案 如果所匹配的帮助中心页面未能解决问题,可将错误信息(即框图内容)粘贴到帮助中心的搜索栏,进行手动搜索解决方案。 发起技术支持申请 如果仍未能搜索到可行的解决方案,您可新建工单申请华为工程师协助。
-
方案架构 系统升级时,若采用蓝绿部署方式,开发人员需进行如下操作: 先将A边服务器(原蓝环境)下线,同时访问流量将全部切分到B边服务器,此时对A边服务器进行升级操作。 A边服务器升级完毕后,将A边服务器设为灰度测试环境,由测试人员对A边服务器进行灰度验证。 灰度验证完毕且功能正常后,A边业务服务器(绿环境)正式上线,并将所有流量切分到A边业务服务器,此时蓝绿部署完毕。 在服务运行过程中,如果A边服务器出现紧急情况,执行蓝绿倒换实现业务快速恢复。 图1 灰度发布原理 若采用金丝雀灰度部署方式,再重复前面的操作,将B边服务器进行升级,并完成灰度测试及正式上线,此时就完成新系统的灰度发布。
-
附录 A边节点下线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 #server X.X.X.X:X; #A节点下线 # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP #if ( $remote_addr ~* "X.X.X.X") { # set $backend $test; #} proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 部署节点 # 获取应用进程id pid=`ps -ef | grep app_name | grep -v grep | awk '{print $2}'` if [ -z "$pid" ]; then echo "[app_name pid is not exist.]" else echo "app_name pid: $pid " # 停止该进程 kill -15 $pid fi # 重新启动应用,可通过执行部署脚本和部署命令两种方式启动应用,如下: # 方式一:通过执行部署脚本启动应用 # sh startup.sh # 方式二:通过执行命令启动应用,建议采用nohup后台启动方式 # nohup java -jar /usr/local/app/SpringbootDemo.jar & A边节点灰度上线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 #server X.X.X.X:X; #A节点下线 # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; #A节点灰度上线 # 下面填入B主机IP及应用服务端口 #server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP if ( $remote_addr ~* "X.X.X.X") { set $backend $test; } proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } B边节点下线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 #server X.X.X.X:X; #B节点下线 } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP #if ( $remote_addr ~* "X.X.X.X") { # set $backend $test; #} proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } B边节点灰度上线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 #server X.X.X.X:X; #B节点下线 } upstream portal_test { # 下面填入A主机IP及应用服务端口 #server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; #B节点灰度上线 } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP if ( $remote_addr ~* "X.X.X.X") { set $backend $test; } proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } } 节点上线-代码示例 worker_processes 1; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; log_format main '$time_local|$remote_addr[$remote_port]|$request|$request_method|$content_length|' '$content_type|$http_referer|$host|$http_x_forwarded_for|' '$http_true_client_ip|$server_name|$request_uri|$server_addr|$server_port|' '$status|$request_time|$upstream_addr|$upstream_response_time|$cookie_domain_tag'; access_log logs/access.log main; #访问日志:存放路径,日志级别。 error_log logs/error.log; #错误日志:存放路径。 sendfile on; keepalive_timeout 65; upstream portal { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } upstream portal_test { # 下面填入A主机IP及应用服务端口 server X.X.X.X:X; # 下面填入B主机IP及应用服务端口 server X.X.X.X:X; } server { listen XXX;#填入Nginx端口 server_name localhost; location / { set $backend portal; set $test portal_test; #下面填入灰度验证机器IP #if ( $remote_addr ~* "X.X.X.X") { # set $backend $test; #} proxy_pass https://$backend; } error_page 500 502 503 504 /50x.html; location = /50x.html { root html; } } }
-
实践案例指引 表1 服务最佳实践指引 实践 描述 内网部署 通过代理主机进行内网部署 本实践提供了将应用通过代理主机部署到内网的主机或服务器的完整操作指导,旨在帮助您实现应用的内网部署。 公网部署 通过代理主机实现Windows主机部署 本实践绍如何将应用通过代理主机部署到华为云Windows主机。 灰度部署 基于Nginx实现灰度发布 本实践基于Nginx负载均衡机制,实现应用的蓝绿发布和灰度发布。 基于Kubernetes Nginx-Ingress实现应用的灰度发布 本实践基于Kubernetes原生的特性实现灰度发布。 虚拟机部署 通过自托管资源池实现跨Region虚拟机部署 本实践介绍如何将应用通过自托管资源池部署到华为云其他Region的主机。 云下IDC部署 通过自托管资源池部署应用至云下IDC 本实践介绍如何将应用通过自托管资源池部署到云下IDC的主机或容器集群。 HE2E DevOps实践 HE2E DevOps实践:部署应用 本实践以“DevOps全流程示例项目”为例,介绍如何部署应用至CCE与E CS 。
更多精彩内容
CDN加速
GaussDB
文字转换成语音
免费的服务器
如何创建网站
域名网站购买
私有云桌面
云主机哪个好
域名怎么备案
手机云电脑
SSL证书申请
云点播服务器
免费OCR是什么
电脑云桌面
域名备案怎么弄
语音转文字
文字图片识别
云桌面是什么
网址安全检测
网站建设搭建
国外CDN加速
SSL免费证书申请
短信批量发送
图片OCR识别
云数据库MySQL
个人域名购买
录音转文字
扫描图片识别文字
OCR图片识别
行驶证识别
虚拟电话号码
电话呼叫中心软件
怎么制作一个网站
Email注册网站
华为VNC
图像文字识别
企业网站制作
个人网站搭建
华为云计算
免费租用云托管
云桌面云服务器
ocr文字识别免费版
HTTPS证书申请
图片文字识别转换
国外域名注册商
使用免费虚拟主机
云电脑主机多少钱
鲲鹏云手机
短信验证码平台
OCR图片文字识别
SSL证书是什么
申请企业邮箱步骤
免费的企业用邮箱
云免流搭建教程
域名价格