阿里云双十一提供了一个不错的福利,列表价 ¥1500/年 的 2C/2G/3M ECS服务器,一年 ¥99 给用三年。(可以低价续用到 2026年,也就是标称 ¥4500 的云资源 300¥拿下),据说还要给中国所有大学生每人免费送一台。
虽然我经常揶揄公有云是杀猪盘,但那是针对我们这种体量的客户。对于个人开发者而言,这个价格真的可以说是很厚道的福利了。
搞这种活动估计是快上市了,需要刷刷用户量之类的指标,来一把阳光普照大撒币。虽说 2C/2G 的 ECS 也就那么回事,但这个 3M 带宽和公网IP 还是很给力的,最主要的是真的便宜啊。新老用户都可以买,活动截止到双11。
我建议开发者都尽快去把这个羊毛薅了,毕竟过了这个村就没这个店。 看阿里云搞这种活动我真是嘴都要笑歪了:这种 2C 2G 的小虚拟机最适合跑个人 Pigsty 全家桶了,肯定能拉动大量新增部署哈哈。
这次阿里云送的都是中国境内区域的服务器,性能还可以,没法当梯子用。但一个带公网 IP 的云服务器可以有许许多多的其他用途:你可以把它当成跳板机,临时文件中转站,搭建一个静态网站,个人博客,运行一些定时脚本跑一些服务,打造自己的 Git 仓库,软件源,Wiki站点,搭建私有部署的论坛/社交媒体站点。
学生也可以用来学习 Linux,构建一个软件开发环境,用 SQL 和 Python 搞搞数据分析,用 Grafana 和 Echarts 玩玩数据可视化(ISD),学习各种数据组件:PostgreSQL,Redis,MinIO … 玩一玩 Docker、Prometheus、Kubernetes 等等。
而 Pigsty 为这些需求提供了一个开源免费、开箱即用的本地云底座,让您立刻在 ECS 上拥有一个生产级的 DevBox,作为打造数字家园的基石。
Pigsty 提供了开箱即用的主机/数据库监控系统 ,开箱即用的 Nginx Web 服务器用于对外服务,一个功能完备,插件齐全的 PostgreSQL 数据库可以用于支持各种上层软件,以及各种各样的选装模块:REDIS, MinIO, Mongo, Docker 等等。
在 Pigsty 的基础上,你可以很轻松地搭建一个静态网站 / 动态服务,或者拉起各种使用数据库的软件系统:Mail,Jira,Confluence,Gitlab,Keycloak,Odoo,Wiki.js,Gitea,Wiki.js 等等等等。
完整特性说明请参考官方文档:https://pigsty.cc/doc/#/zh/README
我们会在后续介绍一系列有趣的主题,《基于 Pigsty 打造个人开发环境与数字家园》,比如:
•样例应用:ISD,对全球天气数据进行分析与可视化•数据库101:快速上手数据库全能王:PostgreSQL•可视化快速上手,用 Grafana 画图进行数据分析•静态网站:使用 hugo 打造你自己的静态个人网站•跳板机:如何将这台 ECS 作为跳板,访问家中的电脑?•站点发布:如何让用户通过域名访问你的个人网站•日志解析:如何从 Loki 抓取 Nginx 日志并解析可视化?•SSL证书:如何使用 Let's Encrypt 免费证书加密•Python环境:如何在 Pigsty 配置 Python 开发环境•Docker环境:如何在 Pigsty 中启用 Docker 开发环境•MinIO:如何将这台 ECS 作为你的文件中转站并与他人分享?•Git仓库:如何使用 Gitea + PostgreSQL 搭建自己的 Git 仓库?•Wiki站点:如何使用 Wiki.js + PostgreSQL 搭建自己的 Wiki 知识库?•社交网络:如何使用快速搭建 Mastodon 与 Discourse?
当然,那些事都可以等一等,先把羊毛薅到手才是硬道理。下面我们来介绍如何把这个折扣 ECS 弄到手。
作为一个资深 Terraform 用户,早已习惯了Terraform一键拉起所需的云资源,置备好所有东西,在控制台上用鼠标点点点这种活儿对我已经非常陌生了。不过我相信也有不少读者其实还并不熟悉云上的操作,所以我们尽可能详尽的展示这里的操作。如果你已经是老司机了,请直接跳过这一部分,进入 Pigsty 配置部分。
没有阿里云账号可以用手机号注册一个,然后用支付宝扫码实名认证完事。进入活动页面,立即购买。地区选一个离你位置最近的,可用区选字母序大一点的。操作系统网络用默认的后面再改,选好后勾选最下面的:我已阅读并同意云服务器ECS-包年包月服务协议。然后点击“立即购买”,支付宝付钱,完工。
不差钱的话我建议直接充个三百块,再花个 99¥ 续费一年,剩下的零钱可以花个几十块钱买个域名,补充点零用的 OSS/ESSD/流量费啥的。毕竟如果你想使用其他按需付费的东西,还是需要一百块抵押在里面的。
直接在实例页面点 “续费”,续费1年目前的价格是 99¥ ,可以直接续上锁定下一年的优惠。阿里云只是说到时候你可以继续用 99¥ 的价格继续续费到 2026,现在还操作不了。
阿里云还有还有一些其他鸡零狗碎的小羊毛可以薅,比如在《云厂商眼中的客户:又穷又闲又缺爱》里面提到的:“试用 PolarDB送 ¥100天猫超市购物卡”。有兴趣也可以去弄。但重要的大头还是这个三年标称五千块折到300块的ECS。
购买完云服务器后进入 ECS 控制台。就能看到你买的实例已经在运行了。我们可以在这里进一步配置网络、操作系统,以及密码密钥。
阿里云 ECS 实例详情页
直接点实例边上的 “停止”,点击实例名称链接进入详情页,选择“更换操作系统”。然后选择“公共镜像”,选择你想用的操作系统镜像就好了。Pigsty 支持 EL 7/8/9 以及兼容操作系统,Ubuntu 22.04/22.04 ,Debian 12/11。
这里我们推荐使用 RockyLinux 8.8 64位,这是目前主流的企业级操作系统,在稳定性和软件新鲜度上取得了一个均衡。 OpenAnolis 8.8 RHCK, RockyLinux 9.2 也是不错的选择,不过我们后面演示用的都是 Rocky 8.8,初学者最好还是不要在这里过多折腾为妙。《EL系统兼容性哪家强?》
在安全设置中,你可以设置 root
用户密码/密钥。如果你没有 SSH 密钥,可以使用 ssh-keygen
生成一对,或者直接填一个文本密码,这里我们方便起见随便设置一个。设置好了之后,你就可以使用 ssh root@<ip>
的方式登陆该服务器了(SSH客户端这种问题就不在这儿展开了,iTerm, putty, xshell, secureCRT 都行)
ssh-keygen # 如果你没有 SSH 密钥对,生成一对。
ssh-copy-id root@<ip> # 将你的ssh密钥添加到服务器上(输入密码)
域名现在非常便宜了,一年也就十几块钱。我非常建议整一个,能够带来很大的便利。主要是你可以用不同的子域名来区分不同的服务,让 Nginx 把流量转发到不同的上游去,一机多用。当然喜欢用 IP 地址 + 端口号直接访问不同服务也无所谓。主要是一来比较土鳖,二来端口开的太多也会有更多安全隐患。
比如这里,我花了十几块钱在阿里云上买了个 pdata.cc
的域名,然后在阿里云DNS控制台上就可以去添加域名的解析了,指向刚申请服务器的 IP 地址。一条 @
记录,一条 *
通配记录,A 记录,指向 ECS 实例的公网IP地址就行。
有了域名之后,你就可以用 ssh root@pdata.cc
的方式登陆,不用再记 IP 地址了。你也可以在这里配置更多的子域名,指向不同的地址。如果域名是拿来建站的,在中国大陆还需要申请备案,反正阿里云也有一条龙的服务。
新创建的云服务器带有默认的安全组规则,只允许 SSH 服务也就是 22 端口访问。所以为了访问这台服务器上的 Web 服务你还需要打开 80/443 端口。如果你懒得折腾域名想用 IP + 端口直接访问相应服务,而不是通过域名走 Nginx 的 80/443 端口,那么 Grafana 监控界面的 3000 端口也应该打开。最后,如果你想从本地访问 PostgreSQL 数据库,也可以考虑打开 5432
端口。
如果你想偷懒,确实可以添加一条开放所有端口的规则,但云服务器不比自己的笔记本,你也不想自己的 ECS 被人黑了拿去干坏事被封号吧。所以这里我们还是按规矩来。实例详情页里点击配置安全组规则:
在默认的 “入方向” 上添加一条“允许”规则,协议选择 TCP
,端口范围填入 80/443/3000/5432
,从 0.0.0.0/0
任意地址都可以访问这些端口。为了安全起见,5432 端口可以不开。
上面这些操作属于 Linux 101 基础知识老生常谈,但很多初学者确实不知道如何去弄。总之,折腾完上面的步骤之后,你就有一台准备就绪的云服务器了!你可以在任意有网络的地方使用域名登陆/访问这台服务器。接下来,我们就可以开始建设数字家园的第一步:安装 Pigsty。
ECS 到手后,你已经可以使用 root 用户通过 SSH 登陆这台服务器了,接下来就是安装 Pigsty 了,过程惊人地简单:
好了,这就完了。下载 1GB 的离线软件包可能需要花个几分钟,执行安装的过程也要花个几分钟。然后所有的东西就都配置就绪了!
Pigsty 官方文档提供了详细的安装配置教程:https://pigsty.cc/doc/#/zh/INSTALL
安装完成后,您可以通过域名或80/443
端口通过 Nginx 访问 WEB 界面,通过 5432
端口访问默认的 PostgreSQL 数据库服务,通过 3000
端口登陆 Grafana。
Pigsty 主机监控面板
在浏览器中输入 http://<公网IP>:3000
,即可访问 Pigsty 的 Grafana 监控系统。羊毛 ECS 3M 带宽小水管会在初次加载 Grafana 时费点功夫。
您可以匿名访问,也可以使用默认的用户名密码 admin
/ pigsty
登录。请务必修改这个默认密码。
一台随时可以销毁重建的开发机,这么搞毫无问题。但如果你想把它作为一个承载个人数字家园的环境,请参考下面的 配置详情 和 安全加固 部分再进行动手。
当您安装 Pigsty 运行 configure
这一步时,Pigsty 会根据您的机器环境,生成一个单机安装的配置文件: pigsty.yml
。默认的配置文件可以直接用,但你可以进一步进行定制修改,来增强其安全性与便利性。配置文件默认在 /root/pigsty/pigsty.yml
,你可以在这里描述/定制所需的各种模块。
Pigsty 提供了 280+ 定制参数,可以满足最龟毛DBA对于大规模生产环境数据库集群的定制要求。但是这里我们只是在单机羊毛 ECS 安装部署。所以不需要操心那么多东西,下面给出了一个配置的样例模板:
在 configure
生成的配置文件中,只需要进行微量调整即可:
首先, 10.10.10.10
这个特殊占位符 IP 地址,全部会被替换为你的 ECS 实例的主私网IP,注意:不要在这里使用公网 IP 地址。
其次,在 infra_portal
参数中,你可以把所有的 .pigsty
域名后缀换成你新申请的域名,比如 pdata.cc
,如果你根本不想用域名,可以跳过这一步。
最后是 PASSWORD,我们强烈建议您修改所有这些密码参数,因为默认密码是众所周知的。尽管这可能会有一些额外的麻烦,但对于安全是至关重要的。
安全加固
许多用户都不在乎安全,直到出问题后才追悔莫及。因此我有必要在这里强调一下:云环境不比自己的笔记本或者网络隔离的生产环境。每天都有成千上万次恶意用户尝试来爆破你的服务器。因此需要格外小心。
不过通常来说,只要你修改并使用了足够强的密码,ECS 和 Pigsty 的默认配置对大多数场景已经足够安全了。这里还有一些安全加固的小建议值得您的关注:https://pigsty.cc/doc/#/zh/SECURITY
第一个要点是,出于安全考虑:除非你真的很想偷懒从本地直接访问远程数据库,一般不建议对公网开放 5432 端口,很多数据库工具都提供了 SSH Tunel 功能 —— 先 SSH 到服务器再本地连接数据库。(顺带一提,Intellij 自带的 Database Tool 是我用过最好用的数据库客户端工具)
第二个要点是使用域名而非 IP 地址访问,就要求你做一些额外的工作:域名可以在云厂商那里买,也可以使用本地 /etc/hosts
的静态解析记录作为下位替代。如果您实在懒得折腾,IP 地址 + 端口直连也不是不行。
第三个要点是使用 HTTPS, 可以使用各家云厂商或 Let's Encrypt 提供的免费证书,Pigsty默认使用自动生成的自签名的CA为 Nginx 启用可选的 SSL。
我们会在后面的教程中详细介绍这些细节,你也可以参考 Pigsty 的文档进行自行配置。但那些事都可以先放一放,当务之急是把羊毛先薅到手,不是吗?