基于阿里云Severless函数计算搭建按量付费的WordPress网站

本文涉及的产品
.cn 域名,1个 12个月
日志服务 SLS,月写入数据量 50GB 1个月
文件存储 NAS,50GB 3个月
简介: 基于阿里云Severless函数计算搭建按量付费的WordPress网站

序言


ServerLess经过几年的发展,已经和传统服务器一样好用了。我最初接触ServerLess是在2020年的云开发校园合伙人创造营上,当时我基于阿里云云开发平台部署了一个在线工具箱。

微信图片_20221227173533.png

“ServerLess发展简史”


网站背后的运行技术服务的发展就像人类的进化:物理服务器时代——云计算时代——无服务器化时代,但是有些老系统不能直接部署到ServerLess,必须进行一定的拆解,这无形之中增加了一道门槛。


本文我将介绍如何基于阿里云Severless函数计算搭建按量付费的WordPress网站。


简介

通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码。更棒的是,您只需要为代码实际运行消耗的资源付费 - 代码未运行则不产生费用。


下表是传统方式搭建服务和 ServerLess 的对比:


项目开发效率 传统方式搭建服务 函数计算方式
采购服务器等基础设施 需要 不需要
管理服务器等基础设施 需要 不需要
开发业务服务模块 需要 需要
部署业务服务模块 需要 需要,但是很简单,提供了很多工具
通过 nginx 搭建反向代理、https 和负载均衡 需要 不需要,通过阿里云 API 网关或函数 HTTP 触发器可以实现
搭建相关日志服务 需要 不需要,通过日志开关开启日志服务
配置安全访问规则 需要 不需要,自带基础安全访问配置,API 网关提供更多的配置
运维负担
开发效率 高,通常几天就能完成
Serverless 传统方式搭建服务
维护成本 维护成本低,无需管理服务器等基础设施,只需编写代码并上传,程序员从底层设备维护中解放出来,只考虑实际业务逻辑即可。 维护成本高,自行维护服务器,需要处理服务器宕机、服务器扩容等一系列底层琐碎的事情
可用性 可用性高,函数计算为用户准备弹性、可靠的计算资源,具有根据流量自动scale特性,对有明显波峰波谷的运用效果奇佳 服务器故障会对应用服务产生严重影响
费用 按需付费,只为实际使用的计算资源付费,代码未运行则不产生费用 需要支付服务器的费用,代码运行与否都要收费


准备


1.函数计算FC,可按量付费,有免费额度

2.文件储存NAS,可按量付费

3.云数据库RDS版

4.日志服务SLS

在进行本文的操作前,需要先开通上述四项服务,并开通在同一地域的同一VPC下。


流程

NAS

1.访问阿里云NAS控制台:https://nasnext.console.aliyun.com/overview

2.创建通用型NAS文件系统。在这里我选择华东1(杭州)地域。

image.png

3.系统已经自动创建了挂载点,所以我们无需再进行创建挂载点的操作。

image.png

FC

1.访问阿里云函数计算控制台:https://fcnext.console.aliyun.com/overview


2.在“概览”中进入刚才创建NAS服务时选择的地域。

image.png


3.创建服务。需要选择允许访问VPC并且允许访问公网,选择好刚才创建NAS服务时使用的VPC和交换机,如果没有安全组,则需要新建安全组。

image.png

image.png

服务角色按默认选择。

image.png

4.在函数的“服务详情”页面,找到“储存配置”选项,点击编辑。

image.png

5.启用NAS,并选择自动配置。

image.png

6.回到函数管理界面,创建新函数,选择创建一个空白函数。

image.png

运行环境选择php7.2,并勾选“处理http请求”。

image.png

配置触发器,请求方式全部勾选,最后点击创建。

image.png

7.进入函数详情页面,编辑默认提供的代码为下面的这段代码。

image.png

getAttribute("requestURI");

$uriArr = explode("?", $uri); // default php / or /wp-admin/    

if (preg_match('#/$#', $uriArr[0]) && !(strpos($uri, '.php')))

{

$uriArr[0] .= "index.php";        

$uri = implode($uriArr);

    }    

$proxy    = $GLOBALS['fcPhpCgiProxy'];    

$root_dir = '/mnt/www';     //php script    

if (preg_match('#\.php.*#', $uri))

{        

$host   = "www.stgit.cn"; // 此处填写你的域名        

$resp   = $proxy->requestPhpCgi($request, $root_dir, "index.php",

['HTTP_HOST' => $host, 'SERVER_NAME' => $host, 'SERVER_PORT' => '80'],            

['debug_show_cgi_params' => false, 'readWriteTimeout' => 60000]

);        

return $resp;

    }

else {         // static files, js, css, jpg ...        

$filename = $root_dir . explode("?", $uri)[0];        

$filename = rawurldecode($filename);        

$handle   = fopen($filename, "r");        

$contents = fread($handle, filesize($filename));         fclose($handle);        

$headers = [

'Content-Type'  => $proxy->getMimeType($filename),  

'Cache-Control' => "max-age=8640000",            

'Accept-Ranges' => 'bytes',        

];        

return new Response(200, $headers, $contents);

    }

}


8.之后回到函数计算控制台,在高级功能—域名管理中配置自定义域名。

image.png

域名填写已经接入阿里云备案的域名,路由配置选择刚才的服务名称和函数名称,点击创建。

需要把域名解析到提供的内网chame。


9.上传wordpress程序

为了简便操作,本文通过开一台按量付费的ECS挂载NAS然后通过SFTP进行可视化操作来上传程序。

可通过类似下面的命令将NAS通过NFS的方式挂载至目录下。

mount -t nfs -o vers=4.0 16d3e4b609-cub21.cn-hangzhou.nas.aliyuncs.com:/ /mnt

image.png


10.访问我们绑定的域名。

image.png

至此部署完成。

相关实践学习
【文生图】一键部署Stable Diffusion基于函数计算
本实验教你如何在函数计算FC上从零开始部署Stable Diffusion来进行AI绘画创作,开启AIGC盲盒。函数计算提供一定的免费额度供用户使用。本实验答疑钉钉群:29290019867
建立 Serverless 思维
本课程包括: Serverless 应用引擎的概念, 为开发者带来的实际价值, 以及让您了解常见的 Serverless 架构模式
目录
相关文章
|
10天前
|
存储 人工智能 运维
正式收官!阿里云函数计算携手优酷,用 AI 重塑影视 IP 创新边界
近日,阿里云联合优酷发起的 Create@影视 IP x AI 应用创新大赛,将网剧《少年白马醉春风》这一热门影视 IP 与阿里云 AI 技术相结合,由阿里云函数计算提供 AIGC 技术支持参赛者基于网剧《少年白马醉春风》IP 或“少年江湖”精神内核,用 AI 生成角色场景设计、手办设计、破次元合照、数字人等多样化的作品。
|
16天前
|
前端开发 小程序 Serverless
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
异步任务处理系统问题之阿里云函数计算FC的应用场景有哪些
|
14天前
|
存储 运维 安全
函数计算产品使用问题之如何获取到访问其他阿里云服务所需的AccessKey、SecretKey或STS Token
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
16天前
|
Kubernetes Serverless 调度
异步任务处理系统问题之在阿里云函数计算平台上用户提交异步任务的问题如何解决
异步任务处理系统问题之在阿里云函数计算平台上用户提交异步任务的问题如何解决
|
21天前
|
Serverless 数据安全/隐私保护 开发者
Serverless 架构问题之阿里云函数计算在事件生态层面如何解决
Serverless 架构问题之阿里云函数计算在事件生态层面如何解决
29 0
|
22天前
|
Kubernetes Serverless API
Serverless阿里云函数计算问题之使用示例如何解决
本文探讨了Serverless场景下实例Exec功能的关键特性及其与K8S和Docker的主要区别:实例Exec仅适用于存活实例,且请求不占用并发度,被视为InvokeFunction调用并据此计费。此外,还介绍了阿里云函数计算中实例Exec功能的使用方法,包括通过控制台、API及CLI工具的操作流程,并详细解释了WebSocket连接对计费的影响以及如何在控制台上登录函数实例进行问题排查的具体步骤。
35 0
|
23天前
|
缓存 JavaScript Serverless
阿里云云效产品使用合集之如何在Serverless Devs阶段指定Node.js版本
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
14天前
|
机器学习/深度学习 机器人 Serverless
FaaS 的应用场景
FaaS 的应用场景
|
14天前
|
Serverless API 异构计算
函数计算产品使用问题之修改SD模版应用的运行环境
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
14天前
|
运维 Serverless 网络安全
函数计算产品使用问题之通过仓库导入应用时无法配置域名外网访问,该如何排查
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。