[转]使⽤GoogleCloud+cloudflare永久免费运⾏⼀个⽹站
除却域名的年费,我的博客站点是运⾏在云服务器上,如果没有意外,维护的费⽤应该是零。
云主机
云服务器我使⽤的是,⾕歌云应该是⽬前唯⼀⼀个承诺提供永远免费 Always Free选项的云服务器提供商,其它云服务商应该只提供12个⽉免费使⽤选项给新⽤户。
当然,⾕歌云提供的永远免费选项仅能是使⽤⼀个性能超弱的实例:
处于美国的机房
单个共享的CPU核⼼
600M的内存
30G的存储
性能可能还⽐不上⼀个树莓派,但也已经⾜够让我⽤来跑⼀个⽹站。
环境
操作系统我为⽅便使⽤了:Ubuntu 18.04 LTS
数据库
数据库因故使⽤ MySql 8.0,但这直接在apt-get install mysql-server之后报错,看/var/log/mysql/error.log,显⽰:
2018-08-12T17:55:07.393408Z 0 [System] [MY-013170] [Server] /usr/sbin/mysqld (mysqld 8.0.12) initializing of server has completed
2018-08-12T17:55:11.130992Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.12) starting as process 3112
2018-08-12T17:55:11.782754Z 0 [ERROR] [MY-012681] [InnoDB] InnoDB: mmap(137428992 bytes) failed; errno 12
2018-08-12T17:55:11.782817Z 1 [ERROR] [MY-012956] [InnoDB] InnoDB: Cannot allocate memory for the buffer pool
2018-08-12T17:55:11.782832Z 1 [ERROR] [MY-012930] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error.
2018-08-12T17:55:11.782886Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2018-08-12T17:55:11.784009Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-08-12T17:55:11.784055Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-08-12T17:55:11.789921Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.
2018-08-12T17:56:06.388162Z 0 [System] [MY-010116] [Server] /usr/sbin/mysqld (mysqld 8.0.12) starting as process 3276
mysql下载starting the server
2018-08-12T17:56:07.253414Z 0 [ERROR] [MY-012681] [InnoDB] InnoDB: mmap(137428992 bytes) failed; errno 12
2018-08-12T17:56:07.253518Z 1 [ERROR] [MY-012956] [InnoDB] InnoDB: Cannot allocate memory for the buffer pool
2018-08-12T17:56:07.253535Z 1 [ERROR] [MY-012930] [InnoDB] InnoDB: Plugin initialization aborted with error Generic error.
2018-08-12T17:56:07.253564Z 1 [ERROR] [MY-010334] [Server] Failed to initialize DD Storage Engine
2018-08-12T17:56:07.255109Z 0 [ERROR] [MY-010020] [Server] Data Dictionary initialization failed.
2018-08-12T17:56:07.255993Z 0 [ERROR] [MY-010119] [Server] Aborting
2018-08-12T17:56:07.320087Z 0 [System] [MY-010910] [Server] /usr/sbin/mysqld: Shutdown complete (mysqld 8.0.12)  MySQL Community Server - GPL.
直接内存不⾜,mysqld⽆法启动。
只好修改/etc/f.d/mysqldf⽂件,在结尾增加:
performance_schema = off
⼀⾏,禁⽤performance_schema节省内存占⽤,mysql才得以正常启动。
nginx
当然,也还需要nginx,直接apt-get install nginx即可。
应⽤
我是使⽤go编写,并且使⽤、等⼯具将⽤到的模板、静态资源⽂件等到打包进可执⾏⽂件中。
整个程序运⾏时占⽤不到20M内存,还有百余兆空余内存:
$ cat /proc/16537/status
Name:  goblog
Umask:  0002
State:  S (sleeping)
Tgid:  16537
Ngid:  0
Pid:    16537
PPid:  16403
TracerPid:      0
Uid:    1001100110011001
Gid:    1002100210021002
FDSize: 256
Groups: 420242529304446108114100010011002
NStgid: 16537
NSpid:  16537
NSpgid: 16537
NSsid:  16403
VmPeak:    16820 kB
VmSize:    16820 kB
VmLck:        0 kB
VmPin:        0 kB
VmHWM:    13356 kB
VmRSS:      9564 kB
RssAnon:            5720 kB
RssFile:            3844 kB
RssShmem:              0 kB
VmData:    8920 kB
VmStk:      132 kB
VmExe:      4320 kB
VmLib:        8 kB
VmPTE:        80 kB
VmSwap:        0 kB
$ free -h
total        used        free      shared  buff/cache  available
Mem:          581M        352M        66M        900K        162M        135M
Swap:            0B          0B          0B
流量
⾕歌云服务的免费实例运⾏时不收钱,但实例跑⽹站产⽣的流量可能是需要钱的,⽐⽅说,从中国、澳洲产⽣的访问流量则完全不免费。怎么办?
在⽹站前⾯直接再套⼀个的CDN,cloudflare有提供免费的CDN供个⼈站点使⽤!
cloudflare溯源去⾕歌云的话,显然也不可能⾛中国、澳洲的流量。
总结
这样,我们就可以安安静静的近乎永久免费的跑⼀个⽹站了。
作者:玩家翁伟
链接:
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。