首页 > 其他分享 >Serverless部署应用并使用Cloudflare加速和支持HTTPS

Serverless部署应用并使用Cloudflare加速和支持HTTPS

时间:2024-06-10 16:11:54浏览次数:27  
标签:Serverless 函数 自定义 域名 DNS HTTPS 镜像 Cloudflare

0

Serverless

Serverless 是一种云计算模型,它使开发人员能够构建和运行应用程序,而无需关心底层的服务器基础设施。在传统的应用程序开发中,开发人员需要管理服务器的配置、扩展和维护等任务。而在 Serverless 模型中,这些任务都由云服务提供商来处理,开发人员只需专注于编写应用程序的业务逻辑。

Serverless 模型适用于许多应用场景,如 Web 应用程序、移动后端、数据处理和物联网等。常见的 Serverless 平台包括:
国外:AWS Lambda、Azure Functions 和 Google Cloud Functions等
国内:阿里云的函数计算 FC,腾讯云的云函数

本文以阿里云的函数计算FC为例(阿里云每个月有免费的额度)

Cloudflare

Cloudflare 是一家提供云计算和网络安全服务的公司。它提供了一系列的网络基础设施和安全功能,帮助网站和应用程序提供更快的加载速度、增强的安全性和高可靠性。

Cloudflare 的核心服务包括:CDN(内容分发网络),DDOS 保护,Web 应用程序防火墙(WAF),DNS服务,TLS 加密和边缘计算等。

本文需要使用到其中的DNS服务TLS加密服务

应用准备

首先要准备好应用的部署文件,云服务厂商一般支持通过文件上传和容器镜像的方式进行部署。
如果是文件上传的方式部署,还需要选择运行环境,不同厂商支持的运行环境有所不同,需要提前了解好。
而镜像的方式就比较简单,只需要提供打包好的镜像即可。
所以个人推荐使用镜像的方式,这样可以拥有对运行环境完整的控制权,也方便版本管理。

本文接下来也将以镜像方式部署举例,其中镜像为已开源的一个微信聊天机器人项目

上传镜像到服务商平台

一般情况下需要把镜像文件上传到服务商平台以后才能进行版本管理和部署,或者通过服务商平台关联源码进行镜像打包,不同厂商可能有不同的策略,我这里选择的是在本地打包以后上传到平台的方式。

阿里云需要先在【容器镜像服务】里面开通个人版,然后【创建镜像仓库】以后根据操作指南执行即可
1

上传完以后可以点击左侧的【镜像版本】查看镜像版本列表
2

创建云函数

阿里云的云函数是挂在服务下的,所以需要先创建服务,然后再创建函数。
创建函数的时候选择【使用容器镜像创建】,请求处理程序类型选择【处理 HTTP 请求】,容器镜像泽点击下面的【选择 ACR 中的镜像】找到选择自己上传的仓库版本即可
3

后面还有【监听端口】不要忘记配置,接下来就是一些资源和环境变量相关的配置,可以根据自己的需要选择配置
4

最后是触发器配置,特别是请求方法记得要把应用内所声明过的类型都配上
5

最后点击【创建】即可完成函数的创建

验证云函数

云函数创建成功以后,回到函数列表,点击函数名称即可查看详情
6

切换到【测试函数】功能项,通过配置请求方式和路径即可向函数发起请求,如果函数能够如预期内响应,则表示函数已经部署成功
7

再切换到【触发器管理(URL)】功能项,可以看到该函数已经拥有了一个外网可以访问的域名,通过该域名也可以验证函数部署是否成功,需要注意的是,该域名如果通过浏览器访问,则所有返回内容都会通过下载的方式响应,这主要是因为国内提供网页服务是需要备案的。
8

自定义域名

完成上面的步骤以后,你就得到了一个可以通过后台提供服务的云函数了,像我这个微信机器人项目就是一个纯后台项目,所以是可以直接使用云函数提供的域名配置到微信公众号后台使用的。但是如果部署的是一个前台服务,那就必须要配置一个自定义的域名才能正常使用,下面就分别介绍一下自定义域名的两种情况。

使用阿里云已经备案的域名

如果你已经有一个在阿里云备案过的域名,那么可以在【函数计算 FC】功能首页找到【域名管理】功能
9

通过点击【添加自定义域名】,进入配置页面
设置好自定义的域名并在域名解析控制台配置好相应的CNAME
HTTPS需要购买证书,或者手动上传(有的话可以选择)
CDN加速是要单独收费的,所以这里选择禁用
最后设置路由配置到部署好的服务函数即可
10

没有已备案的域名

如果没有在阿里云已经备案的域名,则可以考虑把函数部署在海外服务节点,细心的读者可能已经发现了,我就是用的这种方式,上面的服务函数其实是部署在新加坡的,通过海外的节点提供服务就不需要提供的域名是备案过的,添加步骤跟上面备案的域名是一样的,只是在创建的时候少了域名备案校验这一步

配置完成以后,可以通过自定义域名访问验证函数资源

CDN加速和HTTPS

前面我们在配置自定义域名的时候就发现CDN加速HTTPS这两个都被设计为单独的收费项目了,但是我们可以使用Cloudflare免费使用这两项功能。

登录Cloudflare,选择【添加站点】,输入自己的域名添加
11

计划选择最下面的Free
12

继续按照步骤,登录到域名的服务商,把对应的DNS服务器改为Cloudflare的DNS服务器地址
还是以阿里云为例,在域名管理里面的【DNS管理】->【DNS修改】界面选择修改DNS服务器,两个都要改成Cloudflare的
13

完成以后在首页能看到添加的域名为有效即为设置成功
14

点击域名进入配置页面,选择左侧的【DNS】,把之前配置的云函数的CNAME在这里重新配置一遍

15

再点击左侧的【SSL/TLS】,勾选【完全】

16

至此,再次通过自定义域名访问验证,能够通过https访问并正常显示资源即表示成功

17

PS:Cloudflare自带免费的CDN加速功能,还有其他免费的功能可以自行研究

标签:Serverless,函数,自定义,域名,DNS,HTTPS,镜像,Cloudflare
From: https://www.cnblogs.com/martindai/p/18240758

相关文章

  • HTTP与HTTPS的区别
    HTTP和HTTPS的主要区别体现在以下几个方面:1.安全性HTTP协议以明文方式发送内容,不提供任何方式的数据加密。这意味着如果攻击者截取了Web浏览器和网站服务器之间的传输报文,他们可以直接读懂其中的信息。相比之下,HTTPS协议则通过SSL/TLS协议进行加密传输,这种加密方式可以保护数据......
  • 通过接口拿到代理,返回代理列表(只有http,无https)
    defget_proxies_list(num):res=requests.get(url=f"http://api.89ip.cn/tqdl.html?api=1&num={num*2}&port=&address=&isp=").textip_list=re_method(res,"<br>(.*?)<br>")proxies_list=[]foriin......
  • Could not find artifact com.mysql:mysql-connector-j:pom:8.0.36 in central (https
    遇到修改依赖项的MySQL版本结果说找不到依赖项解决方法确保MySQL版本正确降低依赖项的MySQL版本,修改后更新即可以我的MySQL版本举例,可以降低MySQL版本到依赖项支持的版本<dependency><groupId>com.mysql</groupId><artifactId>m......
  • 基于cloudflare workers自建docker镜像
    缘由因为近期国内镜像站点的变动,自建docker镜像也提上了日程。顺便发现了Hammal这个优秀的项目。Hammal是运行于cloudflareworkers上的Docker镜像加速工具,用于解决获取Docker官方镜像速度缓慢以及完全无法获取k8s.gcr.io上镜像的问题。在这里感谢如下两个项目tomwei......
  • 解决Docker遇到error NU1301: Unable to load the service index for source https://
    解决Docker容器内无法通过HTTPS访问外部网络的问题在使用Docker构建.NET项目时,有时会遇到无法通过HTTPS访问外部网络的问题,导致dotnetrestore命令无法从NuGet源下载依赖项。本文将介绍一种通过修改Docker配置文件config.json来解决该问题的方法。问题描述在......
  • Serverless 使用阿里云OOS将http文件转存到对象存储
    背景介绍系统运维管理OOS系统运维管理OOS(CloudOpsOrchestrationService)提供了一个高度灵活和强大的解决方案,通过精巧地编排阿里云提供的OpenAPI,使得用户能够将分散的单个原子运维任务链接起来,形成复杂的运维场景和流程。这种方式不仅大幅提升了运维的效率,也极大地减少了人为错......
  • Maui+blazor中使用https时信任所有证书
    Maui中的Android使用https时信任所有证书前言最近使用Maui+blazor写了一个Androidapp,需要调用webapi接口,同时需要用websock与服务器通信,在使用http和https中遇到一些问题httpAndroid默认禁止http,想要使用http需要在Platforms\Android目录下找到AndroidManifest.xml文件,然后......
  • connect your tunnel to Cloudflare
    #Formoreinformationonconfiguration,see:#*OfficialEnglishDocumentation:http://nginx.org/en/docs/#*OfficialRussianDocumentation:http://nginx.org/ru/docs/usernginx;worker_processesauto;error_log/var/log/nginx/error.log;pid/run/......
  • 记录第一次http转https
    之前小程序用的后端是咸虾米老师的,昨天写小程序就想着自己又不是不会写?用自己的吧,然后发现微信小程序要域名是https协议的。看来又得学新东西了Q-Q查了下大概要这么几个步骤1.购买ssl证书2.通过naginx配置ssl证书3.将以前的http重定向到https那就从第一步开始,应该是这个......
  • nginx泛域名http(80)强制跳转https(443)
    nginx泛域名http(80)强制跳转https(443)随着chrome浏览器在地址栏开始标注网站『不安全』的提示开始,各大小网站都开始从http转为https了,并且都更注重网站的安全了。然页我们之前的很多站点都是基于http开发的,如果全部改造成https,必然是很大的工作量,幸好有第三方的工具可以为我们......