年岁渐长,有那么些时候,总要找个机会或方向,为整日疲于挣钱的自己花点钱。前阵子,有入手 Apple SERIES 7 外,趁着腾讯云搞促销,有购买一台云服务器,以供业余把玩些有趣的项目。先前有使用 DigitalOcean 以及阿里云的云服务器产品,但初入手腾讯云服务器,仍费了些功夫,在此记录一篇文章,以记载个中使用感受,及折腾感记,希望对“后来者”,有所帮助。

腾讯云服务器使用感受,及折腾感记

有必要分享下所购买的规格及价格,腾讯云因为众所周知的原因,促销是真的便宜,2核 4GB 3Mbps,3 年也才 707 人民币;不过其续费是真的贵,一年就需要 4049 元;这种“杀熟”的玩法,国内的几个厂商,可谓“一丘之貉”;阿里云在这一块儿,有过之而无不及:1 核 1 GB 1Mbps,续费一年就需要 1700 元 ── 这也是想尝试下其他厂商产品的缘由。

使用感受

  1. 腾讯或许是不自信?自家产品(无论是公众号、还是云服务器),对扫码登录,有一种无以复加的执著;即便是 QQ 注册账号,登录时也必须再加一道微信扫码。而且,登录有效期极短,这给人体验十分不好。
  2. 比较习惯使用 Ubuntu 系统;首次登录时候,总也登录不上,说是账号密码错误,好一番折腾,各种查找文档才解决 ── 原来腾讯云 Ubuntu 系统账户名默认为 ubuntu;后起之辈,搞得与业界不一致,这样是处于什么考量呢?十分不解。
  3. 基于「账号密码」登录服务器,相对来说很繁琐。原本想换成基于 SSH 登录,各种折腾,竟然不能如愿;后参考文档 ── 使用 SSH 登录 Linux 实例,一番操作倒是可以登录,却仍要输入密码,谜之设定,也是不得不服。
  4. 无论是通过网页,还是基于终端操作,其体验尚可,与其他竞品倒是没有明显不足。值得一提的是,其云服务器,因为内置了 snap,因此安装些软件(如 DockerFlutter),倒是非常方便。

折腾笔记

安装 Docker

安装 Docker,可以参考文章:Install Docker Engine on Ubuntu。但操作起来颇为麻烦;但基于 snap,就非常方便。

1
sudo snap install docker

颇为值得一提的是,腾讯云服务器的「错误提示」,做得蛮好。就在嫌安装 Docker 比较麻烦时,有尝试运行下 Docker 命令(验证下是不是有内置),收到如下错误及提示(建议),这值得为之一赞。

1
2
3
4
5
6
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;具体操作如下:

1
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,具体操作如下:

1
2
sudo rm -rf /etc/docker
sudo snap refresh

部署 Wiki.js 服务

Wiki.js,一个基于 Node.js现代轻量级强大的 Wiki 应用程序(值得一提的是,Wiki.js 是一个开源项目)。最近有尝试基于 Wiki.js 部署了一个服务:清风明月阁,切实感受了下 Wiki.js 的强大功能与便捷使用;在其官方网站提到:“使用 Wiki.js 漂亮而直观的界面,让编写文档成为一种乐趣!“,其所言不虚

Wiki.js Basics UI

部署使用到了 Docker Compose,具体可参见文档:Using Docker Compose Install Wiki.js;下面是 docker-compose.yml 文件的完整演示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
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 所在根目录,运行如下命令即可:

1
sudo docker-compose up

但在实际操作中,会报出如下令人不解错误(这颇令人令人费解,如果这是常见问题,文档该有所修正才是):

delete from “locales” where “code” != $1 - update or delete on table “locales” violates foreign key constraint “pagehistory_localecode_foreign” on table “pageHistory”

Docker Compose Wikijs Error

仔细看了下 Docker Compose 配置文件,发现 volumes 的配置,存在些疑问,对其稍作修改,便解决了问题。如此,属于我 Wiki 服务,就这么较为轻松的部署成功了。

1
2
3
4
#volumes:
# - db-data:/var/lib/postgresql/data
volumes:
- ./db-data:/var/lib/postgresql/data

安装 nginx

除了通过源码包编译安装,还可以通过 apt-get,具体操作如下(snap 不支持安装 Nginx):

1
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 命令),具体操作如下:

1
2
3
nginx -c /etc/nginx/conf.d/[XYZ].conf
# Error
# server directive is not allowed here in /etc/nginx/conf.d/[XYZ].conf

加入出现如上报错;根据经验,可从以下几个角度来排查 & 解决:

  1. server 单词拼写是否有误;
  2. 配置里括号是否对应;
  3. 配置文件顶部是否有不明字符;
  4. 查看配置文件命名是否合规(xx.conf);

您可能感兴趣的文章

打赏

静晴轩 ~ 晚晴幽草轩
个人微信公众号晚晴幽草轩;名字取自:“天意怜幽草,人间重晚晴”。
专注互联网开发(Web 大前端、快应用、小程序),以及分享优质网站、AI 应用、效率工具、心得感悟等内容。

文章目录
  1. 1. 使用感受
  2. 2. 折腾笔记
    1. 2.1. 安装 Docker
    2. 2.2. 安装 Docker Compose
      1. 2.2.1. 解决 Dcoker 相关报错
        1. 2.2.1.1. cannot update snap namespace: cannot create symlink in “/etc/docker”: existing file in the way
    3. 2.3. 部署 Wiki.js 服务
    4. 2.4. 安装 nginx
      1. 2.4.1. 解决 nginx 相关报错
        1. 2.4.1.1. nginx: [emerg] “server” directive is not allowed here
  3. 3. 您可能感兴趣的文章