部署高可用LNMP环境(Alibaba Cloud Linux 3)

更新时间: 2024-04-08 16:28:29

ecs

一键配置

教程简介

本教程提供在阿里云云服务器ECS上基于Alibaba Cloud Linux 3操作系统搭建LNMP环境、配置Nginx静态网页,并基于CLB实例,实现LNMP环境的高可用。

使用多可用区高可用版的负载均衡CLB(Classic Load Balancer)对多台云服务器ECS进行流量分发,可扩展应用系统对外服务能力、消除单点故障,提升应用系统的可用性。

云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,助您降低IT成本,提升运维效率,使您更专注于核心业务创新。更多信息,请参见特性与优势

本教程以Alibaba Cloud Linux 3操作系统为例,如果您的ECS服务器使用了其他版本的操作系统,操作可能和本教程略有差异。高可用架构图如下所示。

高可用..png

我能学到什么

  • 熟悉远程登录Linux操作系统的ECS实例。

  • 学会在ECS实例上搭建一个LNMP环境、配置一个静态Nginx网页。

  • 学会如何创建CLB实例。

  • 学会如何配置七层监听,完成七层负载均衡的请求转发。

操作难度

所需时间

21分钟

使用的阿里云产品

所需费用

正常情况下,ECS实例、负载均衡和云数据传输CDT都可以免费试用。

如果从试用中心使用以上服务,费用为0元

准备环境及资源

5

准备资源

部署高可用LNMP环境需要2个ECS实例(Alibaba Cloud Linux 3.2104 LTS 64位)、1个CLB实例。

领取免费试用权益

进入以下资源领取入口,单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

如果您已有相应资源,可以跳过该步骤直接使用。如果您是产品新用户,可按下列步骤领取免费试用权益

资源领取入口

本教程配置

云服务器ECS

2核4GB 3个月

  • 地域:华东1(杭州)

  • 操作系统:Alibaba Cloud Linux 3.2104 LTS 64位

  • 试用数量:2(ECS01、ECS02)

  • 其他参数:保持默认值或按需选择

传统型负载均衡CLB

每月750个小时 15LCU(免费:每月750小时实例使用时间,每月15个LCU,时长3个月)

  • 地域与可用区:选择与ECS实例相同的地域,可用区按需配置

  • 实例计费方式:按使用量计费

  • 实例类型:公网

  • IP 版本:IPv4

  • 试用数量:1

云数据传输CDT

登录云数据传输CDT控制台,开通成功后CDT将提供200 GB/月免费公网流量(其中,20 GB/月可用于中国大陆及海外地域,180 GB/月仅限海外地域使用)。更多信息,请参见公网流量

说明

云数据传输CDT,是一种为云上流量提供统一计费和出账服务的开通型产品,可以为阿里云多款互联网公网流量产品统一计费,覆盖云服务器ECS、弹性公网IP、传统型负载均衡CLB公网等产品。更多信息,请参见什么是云数据传输CDT

一键配置

10

准备好资源后,您可以通过一键配置快速完成资源配置或应用搭建。一键配置基于阿里云资源编排服务ROS(Resource Orchestration Service)实现,旨在帮助开发者通过IaC(Infrastructure as Code)的方式体验资源的自动化配置。如需查看软件版本、安装命令等配置的具体信息,可查看教程的手动配置版。模板完成的内容包括:

  • 为ECS实例创建安全组

  • 安装Nginx服务

  • 安装MySQL数据库并修改数据库root用户默认密码

  • 安装PHP环境

  • 配置监听和虚拟服务器组

操作步骤

  1. 打开一键配置模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板,并在模板内容区域展示YAML文件的详细信息。

  2. ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域。确认好地域后,保持页面所有选项不变,单击下一步进入配置模板参数页面。

  3. 配置模板参数页面修改资源栈名称,选择您免费试用的CLB实例和免费试用时创建的2台ECS实例,并通过设置MySQL数据库密码来修改数据库root用户的默认密码。填写完所有必选信息并确认后单击创建开始一键配置。

    • 安装Nginx、MySQL和PHP需要通过互联网下载应用,配置时间可能由于网络稳定性等原因而不同。等待期间,您可以通过刷新资源栈信息页面来查看配置是否完成或通过单击事件页签查看配置详细进展。

    • 如果您在同一台ECS实例上重复执行本教程的一键配置模板,请确保MySQL数据库密码和第一次执行模板时设置的密码完全一致。否则一键配置结果不可用。

  4. 资源栈信息页面的状态显示为创建成功时,表示一键配置完成。

    image.png

完成

1

您可以通过以下方式测试CLB实例是否将请求分发至后端ECS。

  1. 登录传统型负载均衡CLB控制台,在CLB实例管理页面,在服务地址列查看并复制CLB实例的公网(弹性)IP地址。

  2. 在浏览器输入CLB实例的公网服务地址http://121.XX.XX.105/index.html,验证CLB的七层负载均衡转发能力。

    刷新浏览器,您可以观察到请求在两台ECS之间转换。

    image

    image

清理及后续

5

清理

  1. 本教程使用的是企业版ECS实例,默认为包年包月实例,完成本教程后请参考以下规则清理:

    • 包年包月实例到期会自动释放,释放实例的同时释放数据。

    • 如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

  2. CLB免费试用权益有期限限制,权益到期后未释放的CLB实例可能产生费用。完成教程后,请参考以下场景处理CLB实例:

    • 如果无需使用CLB实例,您可以登录传统型负载均衡CLB控制台在左侧导航栏,选择传统型负载均衡CLB(原SLB)>实例管理,在实例管理页面,找到目标CLB实例,在操作列单击1111>释放设置,按照界面提示手动释放实例。

    • 如果需继续使用CLB实例,请至少在试用到期1小时前为您的阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的CLB实例会因欠费而被自动停机,停机7天内CLB实例将保留,7天后CLB实例和数据都将被自动释放。

后续

LNMP搭建后,您可以在该ECS实例上搭建网站、搭建开发环境、绑定并解析域名后使用域名访问网站等操作。具体操作,请参见建站零基础入门Linux实例如何在Web服务中绑定域名

总结

常用知识点

问题1:安装Nginx后,不能通过ECS实例公网IP地址访问,请确保已在安全组中放行Nginx默认使用的哪个端口?(单选题)

  • 22

  • 80

  • 3369

正确答案是80。Nginx是Web Server,默认端口号是80,因此需要放行80端口。

问题2:公网CLB实例和后端ECS是否需要属于同一个VPC?(单选题)

  • 不需要

  • 需要

正确答案是需要。私网CLB实例和后端ECS需属于同一个VPC中。

问题3:健康检查失败的常见原因?(单选题)

  • 可能是后端ECS未部署服务

  • 未开启健康检查

正确答案是后端ECS未部署服务。

延伸阅读

手动配置

30

教程简介

本教程提供在阿里云云服务器ECS上基于Alibaba Cloud Linux 3操作系统搭建LNMP环境、配置Nginx静态网页,并基于CLB实例,实现LNMP环境的高可用。

使用多可用区高可用版的负载均衡CLB(Classic Load Balancer)对多台云服务器ECS进行流量分发,可扩展应用系统对外服务能力、消除单点故障,提升应用系统的可用性。

云服务器ECS是一种安全可靠、弹性可伸缩的云计算服务,助您降低IT成本,提升运维效率,使您更专注于核心业务创新。更多信息,请参见特性与优势

本教程以Alibaba Cloud Linux 3操作系统为例,如果您的ECS服务器使用了其他版本的操作系统,操作可能和本教程略有差异。高可用架构图如下所示。

高可用..png

我能学到什么

  • 熟悉远程登录Linux操作系统的ECS实例。

  • 学会在ECS实例上搭建一个LNMP环境、配置一个静态Nginx网页。

  • 学会如何创建CLB实例。

  • 学会如何配置七层监听,完成七层负载均衡的请求转发。

操作难度

所需时间

30分钟

使用的阿里云产品

所需费用

正常情况下,ECS实例、负载均衡和云数据传输CDT都可以免费试用。

如果从试用中心使用以上服务,费用为0元

准备环境及资源

5

准备资源

部署高可用LNMP环境需要2个ECS实例(Alibaba Cloud Linux 3.2104 LTS 64位)、1个CLB实例。

领取免费试用权益

进入以下资源领取入口,单击页面右上方的登录/注册按钮,并根据页面提示完成账号登录(已有阿里云账号)、账号注册(尚无阿里云账号)或实名认证(根据试用产品要求完成个人实名认证或企业实名认证)。

如果您已有相应资源,可以跳过该步骤直接使用。如果您是产品新用户,可按下列步骤领取免费试用权益

资源领取入口

本教程配置

云服务器ECS

2核4GB 3个月

  • 地域:华东1(杭州)

  • 操作系统:Alibaba Cloud Linux 3.2104 LTS 64位

  • 试用数量:2(ECS01、ECS02)

  • 其他参数:保持默认值或按需选择

传统型负载均衡CLB

每月750个小时 15LCU(免费:每月750小时实例使用时间,每月15个LCU,时长3个月)

  • 地域与可用区:选择与ECS实例相同的地域,可用区按需配置

  • 实例计费方式:按使用量计费

  • 实例类型:公网

  • IP 版本:IPv4

  • 试用数量:1

云数据传输CDT

登录云数据传输CDT控制台,开通成功后CDT将提供200 GB/月免费公网流量(其中,20 GB/月可用于中国大陆及海外地域,180 GB/月仅限海外地域使用)。更多信息,请参见公网流量

说明

云数据传输CDT,是一种为云上流量提供统一计费和出账服务的开通型产品,可以为阿里云多款互联网公网流量产品统一计费,覆盖云服务器ECS、弹性公网IP、传统型负载均衡CLB公网等产品。更多信息,请参见什么是云数据传输CDT

登录云服务器

4

开通免费试用ECS服务器后,系统会创建2个ECS实例(对应2台云服务器),使用ECS实例部署应用或搭建环境前,需设置实例密码后才能登录实例。

  1. 登录ECS控制台,在左侧导航栏,选择实例与镜像 > 实例

  2. 在顶部菜单栏左上角处,选择和试用实例相同的地域。

  3. 设置该实例登录密码。在操作列单击 icon1> 实例属性 > 重置实例密码,按照界面提示设置ECS实例的登录密码。保存密码后,在弹出的页面,单击立即重启使密码生效。

    实例创建完成大约3~5分钟后,才支持重置实例密码,如不可重置请耐心等待后重试。

    image

  4. 单击试用实例的ID,选择安全组页签,单击安全组操作列的配置规则,在入方向添加需要放行的端口。本教程中,在安全组入方向放行SSH默认22端口、Nginx默认80端口和MySQL默认3306端口。

    image

  5. 远程连接ECS实例。

    1. 返回实例页面,单击该实例对应操作列下的远程连接

    2. 在弹出的连接与命令对话框中,单击通过Workbench远程连接对应的立即登录

    3. 在弹出的登录实例对话框中,输入登录信息。

部署LNMP环境

5

您可以参考以下操作,部署LNMP环境及Nginx静态网页。如果您已部署了相应环境,可以通过创建自定义镜像,并使用自定义镜像创建相同的环境。

  1. 打开一键配置模板链接前往ROS控制台,系统自动打开使用新资源创建资源栈的面板,并在模板内容区域展示YAML文件的详细信息。

  2. ROS控制台默认处于您上一次访问控制台时的地域,请根据您创建的资源所在地域修改地域。确认好地域后,保持页面所有选项不变,单击下一步进入配置模板参数页面。

  3. 配置模板参数页面修改资源栈名称,选择您申请免费试用时创建的ECS实例(如ECS01),并通过设置MySQL数据库密码来修改数据库root用户的默认密码。填写完所有必选信息并确认后单击创建开始一键配置。

    • 安装Nginx、MySQL和PHP需要通过互联网下载应用,配置时间可能由于网络稳定性等原因而不同。等待期间,您可以通过刷新资源栈信息页面来查看配置是否完成或通过单击事件页签查看配置详细进展。

    • 如果您在同一台ECS实例上重复执行本教程的一键配置模板,请确保MySQL数据库密码和第一次执行模板时设置的密码完全一致。否则一键配置结果不可用。

  4. 资源栈信息页面的状态显示为创建成功时,表示一键配置完成。

    image

  5. 远程连接ECS实例,执行命令配置Nginx静态网页内容。

    cd /usr/share/nginx/html
    echo "Hello World ! This is ECS01." > index.html
  6. 重复执行以上操作,在ECS02实例中部署LNMP环境及Nginx静态网页。

    请注意以下操作:步骤2中选择ECS02,步骤5中echo命令中的ECS01替换为ECS02。

配置监听

5

负载均衡实例监听负责检查连接请求,然后根据调度算法定义的转发策略将请求流量分发至后端服务器。

  1. 登录传统型负载均衡CLB控制台

  2. 实例管理页面,单击已创建的CLB实例ID。

  3. 监听页签单击添加监听

  4. 协议&监听配置向导,完成以下主要参数的配置,其余参数保持默认配置,然后单击下一步

    监听配置

    说明

    示例值

    选择负载均衡协议

    选择监听的协议类型。

    HTTP

    监听端口

    设置前端协议端口,即用来接收请求并向后端服务器进行请求转发的监听端口。

    监听端口范围:1~65535。

    80

    监听名称

    自定义监听的名称。

    HTTP_80

  5. 后端服务器配置向导,选择默认服务器组,可以看到已添加的ECS01和ECS02。

  6. 输入ECS01和ECS02的端口,本教程都设置为80,然后单击下一步

  7. 健康检查配置向导,保持默认配置,单击下一步,然后单击提交。等待配置成功后,单击知道了

完成

1

您可以通过以下方式测试CLB实例是否将请求分发至后端ECS。

  1. 登录传统型负载均衡CLB控制台,在CLB实例管理页面,在服务地址列查看并复制CLB实例的公网(弹性)IP地址。

  2. 在浏览器输入CLB实例的公网服务地址http://121.XX.XX.105/index.html,验证CLB的七层负载均衡转发能力。

    刷新浏览器,您可以观察到请求在两台ECS之间转换。

    image

    image

清理及后续

5

清理

  1. 本教程使用的是企业版ECS实例,默认为包年包月实例,完成本教程后请参考以下规则清理:

    • 包年包月实例到期会自动释放,释放实例的同时释放数据。

    • 如果需要继续使用实例,请在试用到期前及时续费。到期未续费的实例会因欠费而被自动停机,停机15天内实例将保留,15天后实例和数据都将被自动释放。

  2. CLB免费试用权益有期限限制,权益到期后未释放的CLB实例可能产生费用。完成教程后,请参考以下场景处理CLB实例:

    • 如果无需使用CLB实例,您可以登录传统型负载均衡CLB控制台在左侧导航栏,选择传统型负载均衡CLB(原SLB)>实例管理,在实例管理页面,找到目标CLB实例,在操作列单击1111>释放设置,按照界面提示手动释放实例。

    • 如果需继续使用CLB实例,请至少在试用到期1小时前为您的阿里云账号充值,确保账户金额不小于100.00元人民币。到期未续费的CLB实例会因欠费而被自动停机,停机7天内CLB实例将保留,7天后CLB实例和数据都将被自动释放。

后续

LNMP搭建后,您可以在该ECS实例上搭建网站、搭建开发环境、绑定并解析域名后使用域名访问网站等操作。具体操作,请参见建站零基础入门Linux实例如何在Web服务中绑定域名

总结

常用知识点

问题1:安装Nginx后,不能通过ECS实例公网IP地址访问,请确保已在安全组中放行Nginx默认使用的哪个端口?(单选题)

  • 22

  • 80

  • 3369

正确答案是80。Nginx是Web Server,默认端口号是80,因此需要放行80端口。

问题2:公网CLB实例和后端ECS是否需要属于同一个VPC?(单选题)

  • 不需要

  • 需要

正确答案是需要。私网CLB实例和后端ECS需属于同一个VPC中。

问题3:健康检查失败的常见原因?(单选题)

  • 可能是后端ECS未部署服务

  • 未开启健康检查

正确答案是后端ECS未部署服务。

延伸阅读