[转]使用Google Cloud + cloudflare永久免费运行一个网站
原文出处:https://www.jianshu.com/p/dc4c9996f4b9
除却域名的年费,我的博客站点是运行在云服务器上,如果没有意外,维护的费用应该是零。
云主机
云服务器我使用的是Google Cloud,谷歌云应该是目前唯一一个承诺提供永远免费 Always Free
选项的云服务器提供商,其它云服务商应该只提供12个月免费使用选项给新用户。
当然,谷歌云提供的永远免费
选项仅能是使用一个性能超弱的实例:
- 处于美国的机房
- 单个共享的CPU核心
- 600M的内存
- 30G的存储
性能可能还比不上一个树莓派,但也已经足够让我用来跑一个网站。
环境
操作系统我为方便使用了:Ubuntu 18.04 LTS
数据库
数据库因故使用 MySql 8.0,但这直接在apt-get install mysql-server
之后报错,看/var/log/mysql/error.log
,显示:
--12T17::.393408Z [System] [MY-] [Server] /usr/sbin/mysqld (mysqld 8.0.) initializing of server has completed
--12T17::.130992Z [System] [MY-] [Server] /usr/sbin/mysqld (mysqld 8.0.) starting as process
--12T17::.782754Z [ERROR] [MY-] [InnoDB] InnoDB: mmap( bytes) failed; errno
--12T17::.782817Z [ERROR] [MY-] [InnoDB] InnoDB: Cannot allocate memory for the buffer pool
--12T17::.782832Z [ERROR] [MY-] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error.
--12T17::.782886Z [ERROR] [MY-] [Server] Failed to initialize DD Storage Engine
--12T17::.784009Z [ERROR] [MY-] [Server] Data Dictionary initialization failed.
--12T17::.784055Z [ERROR] [MY-] [Server] Aborting
--12T17::.789921Z [System] [MY-] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.) MySQL Community Server - GPL.
--12T17::.388162Z [System] [MY-] [Server] /usr/sbin/mysqld (mysqld 8.0.) starting as process
--12T17::.253414Z [ERROR] [MY-] [InnoDB] InnoDB: mmap( bytes) failed; errno
--12T17::.253518Z [ERROR] [MY-] [InnoDB] InnoDB: Cannot allocate memory for the buffer pool
--12T17::.253535Z [ERROR] [MY-] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error.
--12T17::.253564Z [ERROR] [MY-] [Server] Failed to initialize DD Storage Engine
--12T17::.255109Z [ERROR] [MY-] [Server] Data Dictionary initialization failed.
--12T17::.255993Z [ERROR] [MY-] [Server] Aborting
--12T17::.320087Z [System] [MY-] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.) MySQL Community Server - GPL.
直接内存不足,mysqld无法启动。
只好修改/etc/mysql/mysql.conf.d/mysqld.cnf
文件,在结尾增加:
performance_schema = off
一行,禁用performance_schema
节省内存占用,mysql才得以正常启动。
nginx
当然,也还需要nginx,直接 apt-get install nginx
即可。
应用
整个网站应用我是使用go编写,并且使用gorazor、esc等工具将用到的模板、静态资源文件等到打包进可执行文件中。
整个程序运行时占用不到20M内存,还有百余兆空余内存:
$ cat /proc//status Name: goblog
Umask:
State: S (sleeping)
Tgid:
Ngid:
Pid:
PPid:
TracerPid:
Uid:
Gid:
FDSize:
Groups:
NStgid:
NSpid:
NSpgid:
NSsid:
VmPeak: kB
VmSize: kB
VmLck: kB
VmPin: kB
VmHWM: kB
VmRSS: kB
RssAnon: kB
RssFile: kB
RssShmem: kB
VmData: kB
VmStk: kB
VmExe: kB
VmLib: kB
VmPTE: kB
VmSwap: kB $ free -h
total used free shared buff/cache available
Mem: 581M 352M 66M 900K 162M 135M
Swap: 0B 0B 0B
流量
谷歌云服务的免费实例运行时不收钱,但实例跑网站产生的流量可能是需要钱的,比方说,从中国、澳洲产生的访问流量则完全不免费。
怎么办?
在网站前面直接再套一个cloudflare的CDN,cloudflare有提供免费的CDN供个人站点使用!
cloudflare溯源去谷歌云的话,显然也不可能走中国、澳洲的流量。
总结
这样,我们就可以安安静静的近乎永久免费的跑一个网站了。
作者:玩家翁伟
链接:https://www.jianshu.com/p/dc4c9996f4b9
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。
[转]使用Google Cloud + cloudflare永久免费运行一个网站的更多相关文章
- Google Cloud服务免费申请试用以及使用教程
简介 Google Cloud Platform lets you build and host applications and websites, store data, and analyze ...
- 使用Google Cloud Platform构建机器学习项目-宠物识别
宠物识别我们使用到了tensorflow object-detection API (https://github.com/tensorflow/models/tree/master/researc ...
- Google Colab——用谷歌免费GPU跑你的深度学习代码
Google Colab简介 Google Colaboratory是谷歌开放的一款研究工具,主要用于机器学习的开发和研究.这款工具现在可以免费使用,但是不是永久免费暂时还不确定.Google Col ...
- Getting Started(Google Cloud Storage Client Library)
在运行下面的步骤之前,请确保: 1.你的项目已经激活了Google Cloud Storage和App Engine,包括已经创建了至少一个Cloud Storage bucket. 2.你已经下载了 ...
- Activating Google Cloud Storage
先决条件 你需要下面的内容: 1.一个Google账户,比如来自Gmail.如果你没有,请在Google account signup site注册. 2.一个新的或已经存在的Google Devel ...
- Java Client for Google Cloud Storage
关于Google Cloud Storage Google Cloud Storage有益于大文件的存储与服务(serve).此外,Cloud Storage提供了对访问控制列表(ACLs)的使用,提 ...
- 使用GCM服务(Google Cloud Messaging)实现Android消息推送
最近在网上查了关于很多Android消息推送的资料,其中主要有四种方法. 1) 使用GCM服务(Google Cloud Messaging) 2) 使用XMPP协议(Openfire + Spark ...
- 使用 PUTTY 操作 Google Cloud
目的: 使用putty连接Google Cloud 实例. 总说: 首先要用 PuTTYgen生成 private key 和 public key, 之后 登录Google Cloud 将生成的 ...
- 使用Let's Encrypt搭建永久免费的HTTPS服务
1.概述1.1 HTTPS概述HTTPS即HTTP + TLS,TLS 是传输层加密协议,它的前身是 SSL 协议.我们知道HTTP协议是基于TCP的.简而言之HTTPS就是在TCP的基础上套一层TL ...
随机推荐
- linux学习-防火墙指令
Redhat7之前的版本(iptables) 开启关闭防火墙 放行端口 RedHat7防火墙相关的指令(firewall-cmd) 安装firewall 本文内容适用于 redhat 和 centos ...
- 错误排查:Cloudera Manager Agent 的 Parcel 目录位于可用空间小于 10.0 吉字节 的文件系统上。 /opt/cloudera/parcels
临时解决办法: 点击右上角的抑制,选中抑制复选框,然后重启服务即可.
- 使用别的电脑连接另一台电脑当中的虚拟机中的kylin项目
环境说明: 本机A的ip:192.168.0.242 服务器B的ip:192.168.0.125 服务器上的虚拟机C的ip:192.168.43.129 目前状态: B上面能访问C上的站点kylin站 ...
- mybatis关联映射一对一
在项目开发中,会存在一对一的关系,比如一个人只有一个身份证,一个身份证只能给一个人使用,这就是一对一关系.一对一关系使用主外键关联. table.sql,在数据库中创建如下两个表并插入数据 CREAT ...
- 坑人的Mysql5.7 (默认不支持Group By语句)(转)
部署项目时,项目启动完毕.点击有group by 查询语句时出现错误,界面中没有该有的数据.查询log日志发现错误 Expression #1 of SELECT list is not in GRO ...
- es聚合后排序
注意: es版本至少6.1以上 语句: GET 76/sessions/_search { "size": 0, "query": { "bool&q ...
- windows系统将Tomcat将控制台的日志重定向到日志文件
1 . 修改startup.bat 将 56 行注释,加上一行: call "%EXECUTABLE%" run %CMD_LINE_ARGS% >> ..\logs\ ...
- Docker 0x13: Docker 构建集群/服务/Compose/分布式服务栈
目录 Docker 构建集群/服务/Compose/分布式服务栈 集群 初始化集群服务 安装docker-machine 管理节点和工作节点 docker集群构建完成 集群中部署应用 集群服务访问特性 ...
- HAProxy的基础配置详解
HAProxy是高性能的企业级负载均衡调度器,同时支持四层TCP和七层HTTP协议的负载均衡调度,以及支持基于cookie的持久性,支持正则表达式及web状态统计.自动故障切换等优点,因此广泛被应 ...
- Python pyc文件
什么是pyc文件 pyc 是由py文件经过编译后二进制文件,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python 的虚 拟机来执行的.pyc的内容,是跟pyt ...