腾讯云服务器使用感受,及折腾笔记
年岁渐长,有那么些时候,总要找个机会或方向,为整日疲于挣钱的自己花点钱。前阵子,有入手 Apple SERIES 7 外,趁着腾讯云搞促销,有购买一台云服务器,以供业余把玩些有趣的项目。先前有使用 DigitalOcean 以及阿里云的云服务器产品,但初入手腾讯云服务器,仍费了些功夫,在此记录一篇文章,以记载个中使用感受,及折腾感记,希望对后续来折腾的朋友,有所帮助。
有必要分享下所购买的规格及价格,腾讯云因为众所周知的原因,促销是真的便宜,2 核 4 GB 3 Mbps,3 年也才 707 人民币;不过其续费是真的贵,一年就需要 4049 元;这种“杀熟”的玩法,国内的几个厂商,可谓“一丘之貉”;阿里云在这一块儿,虽没那么狠,却也未好到哪里去:1 核 1 GB 1 Mbps,续费一年就需要 1700 元(最初买的时候,300 多元) ── 这也是想尝试玩儿下其他厂商产品的缘由。
使用感受
- 腾讯云或许是因为某种不自信?自家产品(无论是公众号、还是云服务器),对扫码登录,有一种一往无前的执著;即便是 QQ 注册账号,登录时也必须再加一道微信扫码。而且,登录有效期极短,这给人体验颇为不好。
- 比较习惯使用 Ubuntu 系统;首次登录时候,总也登录不上,说是账号密码错误,好一番折腾,各种查找文档才解决 ── 原来腾讯云 Ubuntu 系统账户名默认为
ubuntu
;后起之辈,搞得与业界不一致,这样是出于什么考量呢?颇为不解。 - 基于「账号密码」登录服务器,相对来说很繁琐。原本想换成基于 SSH 登录,各种折腾,竟然不能如愿;后参考文档 ── 使用 SSH 登录 Linux 实例,一番操作倒是可以登录,却仍要输入密码,谜之设定,也是不得不服(也或许是还没折腾到位)。
- 无论是通过网页,还是基于终端操作,其体验尚可,与其他竞品倒是没有明显不足。值得一提的是,其云服务器,因为内置了 snap,因此安装些软件(如 Docker、Flutter),倒是非常方便。
- 相比于阿里云,腾讯云的重启速度是真的快(不清楚是否跟已有的应用数有关),阿里云当内存使用超过一定阈值,就会卡死,使得所部署的应用,都无法访问,只得重启,这个过程至少 2 分钟以上(在关键时候,这很漫长)。
- 因为规定,目前所有网站访问都需备案(如未备案
80
端口是无法访问到网站);可腾讯的备案,经历了一次真的是艰难异常,即便已经在阿里云备案过,在这边依旧要更多你无法想象的阻碍;当听到对方客服讲到“幽居空谷轩”,有两个词出自杜甫先生的诗,因而不能作为网站名时,就果断放弃了;所以对于清风明月阁这个网站,您无法基于http
协议进行访问,Lei目。
折腾笔记
安装 Docker
安装 Docker,可以参考文章:Install Docker Engine on Ubuntu。但操作起来颇为麻烦;但基于 snap,就非常方便。
sudo snap install docker
颇值得一提的是,腾讯云服务器的「错误提示」,做得蛮好。就在嫌安装 Docker 比较麻烦时,有尝试运行下 Docker
命令(验证下是不是有内置),收到如下错误及提示(建议),在此为之一赞👍。
Command 'docker' not found, but can be installed with:
sudo snap install docker
sudo apt install docker.io
See 'snap info docker' for additional versions.
安装 Docker Compose
Docker Compose,用于定义和运行多容器 Docker 应用程序的工具。通过 Compose,您可以使用 YML 文件来配置应用程序需要的所有服务。然后,使用一个命令,就可以从 YML 文件配置中创建并启动所有服务。在 Linux 系统上安装 Compose,可以参见文章:Install Docker Compose;具体操作如下:
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
解决 Dcoker 相关报错
cannot update snap namespace: cannot create symlink in "/etc/docker": existing file in the way
在重启服务器之后,会报如下错误:
cannot update snap namespace: cannot create symlink in "/etc/docker": existing file in the way
其解决办法参见:Cannot update snap namespace: cannot create symlink in "/etc/docker": existing file in the way,具体操作如下:
sudo rm -rf /etc/docker
sudo snap refresh
部署 Wiki.js 服务
Wiki.js,一个基于 Node.js 的现代、轻量级和强大的 Wiki 应用程序(值得一提的是,Wiki.js 是一个开源项目)。最近有尝试基于 Wiki.js 部署了一个服务:清风明月阁,切实感受了下 Wiki.js 的强大功能与便捷使用;在其官方网站提到:“使用 Wiki.js 漂亮而直观的界面,让编写文档成为一种乐趣!“,其所言不虚。
部署使用到了 Docker Compose,具体可参见文档:Using Docker Compose Install Wiki.js;下面是 docker-compose.yml
文件的完整演示:
version: "3"
services:
db:
image: postgres:11-alpine
environment:
POSTGRES_DB: wiki
POSTGRES_PASSWORD: wikijsrocks
POSTGRES_USER: wikijs
logging:
driver: "none"
restart: unless-stopped
volumes:
- db-data:/var/lib/postgresql/data
wiki:
image: requarks/wiki:2
depends_on:
- db
environment:
DB_TYPE: postgres
DB_HOST: db
DB_PORT: 5432
DB_USER: wikijs
DB_PASS: wikijsrocks
DB_NAME: wiki
restart: unless-stopped
ports:
- "80:3000"
volumes:
db-data:
只需在 docker-compose.yml
所在根目录,运行如下命令即可:
sudo docker-compose up
需要额外说明的是,运行如上命令,要加上 sudo
呢?不加的话,会报如下错误🤔:
ERROR: Couldn't connect to Docker daemon - you might need to run
docker-machine start default
.
但在实际操作中,会报出如下令人不解错误(这颇令人令人费解,如果这是常见问题,文档该有所修正才是):
delete from "locales" where "code" != $1 - update or delete on table "locales" violates foreign key constraint "pagehistory_localecode_foreign" on table "pageHistory"
仔细看了下 Docker Compose 配置文件,发现 volumes 的配置,存在些疑问,对其稍作修改,便解决了问题。如此,属于我 Wiki 服务,就这么较为轻松的部署成功了。
#volumes:
# - db-data:/var/lib/postgresql/data
volumes:
- ./db-data:/var/lib/postgresql/data
安装 nginx
除了通过源码包编译安装,还可以通过 apt-get
,具体操作如下(snap 不支持安装 Nginx):
sudo apt-get install nginx
解决 nginx 相关报错
nginx: [emerg] "server" directive is not allowed here
如果所配置的内容,不能如期生效(如 https(443 端口) 配置,连接被拒绝:nginx port 443: Connection refused );除了要检查是否将 443 添加「安全组规则」,另外就是要检查 nginx
配置(可通过 nginx -c
命令),具体操作如下:
nginx -c /etc/nginx/conf.d/[XYZ].conf
# Error
# server directive is not allowed here in /etc/nginx/conf.d/[XYZ].conf
加入出现如上报错;根据经验,可从以下几个角度来排查 & 解决:
- server 单词拼写是否有误;
- 配置里括号是否对应;
- 配置文件顶部是否有不明字符;
- 查看配置文件命名是否合规(
xx.conf
);