[转]使用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 ...
随机推荐
- 【WPF】2、美化控件
控件有默认样式,但是有时候默认样式并不够用,就需要美化. 1.常用的方法是美术出图,直接贴图进去,效果又好又简单(对程序来说). 用图片有三种方式:设置控件背景图片.设置控件内容为图片和直接使用图片做 ...
- Entity Framework 学习系列(1) - 认识理解Entity Framework
目录 写在前面 什么是Entity Framework EF的优缺点 1.优点 2.缺点 如何理解ORM EF执行的原理 写在前面 在使用.net mvc 开发的时候.为了高效的开发,我们常常会搭配O ...
- django配置文件
1.BASSE_DIR BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) 当前工程的根目录,Django会依 ...
- html5直接调用手机相机照相/录像
现在的h5功能越来越强大.之前做项目时上传功能input type=file时,在IOS下居然可以直接照相...但是在安卓上是不能.后面研究 了下,其实安卓下也可以的. 就是在input上加上capt ...
- VMware虚拟机文件夹中各文件作用详解
虚拟机的文件管理由VMware Workstation来执行 一个虚拟机一般以一系列文件的形式储存在宿主机中,这些文件一般在由workstation为虚拟机所创建的那个目录中 这里列出了这些关键文件及 ...
- svn进行上传项目
当svn的服务器搭建成功后,就可以进行上传项目了. 右键,选择客户端的repo-browser, 输入地址 然后就可以浏览所有项目: 然后在版本仓库上,右键,add folder, 添加对应的文件夹即 ...
- spring注入注解@Resource和@Autowired
一.@Autowired和@Qualifier @Autowired是自动注入的注解,写在属性.方法.构造方法上,会按照类型自动装配属性或参数.该注解,可以自动装配接口的实现类,但前提是spring容 ...
- 【异常】Zipkin server启动 Caused by: java.lang.ClassNotFoundException: com.linecorp.armeria.server.cors.CorsServiceBuilder
一.异常信息 ERROR StatusLogger Log4j2 could not find a logging implementation. Please add log4j-core to t ...
- Odoo仪表盘详解
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826324.html 一:仪表盘与看板的区别 kanban:kanban是一种视图类型,卡片式视图.可以为 ...
- Odoo启动运行参数(script运行参数,不是运行配置文件)
转载请注明原文地址:https://www.cnblogs.com/ygj0930/p/10826315.html 一:启动选项用在哪里 如果你是用Pycharm进行odoo二次开发的话,可以通过 R ...