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

见闻感悟 Mar 30, 2022

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

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

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

使用感受

  1. 腾讯云或许是因为某种不自信?自家产品(无论是公众号、还是云服务器),对扫码登录,有一种一往无前的执著;即便是 QQ 注册账号,登录时也必须再加一道微信扫码。而且,登录有效期极短,这给人体验颇为不好。
  2. 比较习惯使用 Ubuntu 系统;首次登录时候,总也登录不上,说是账号密码错误,好一番折腾,各种查找文档才解决 ── 原来腾讯云 Ubuntu 系统账户名默认为 ubuntu;后起之辈,搞得与业界不一致,这样是出于什么考量呢?颇为不解。
  3. 基于「账号密码」登录服务器,相对来说很繁琐。原本想换成基于 SSH 登录,各种折腾,竟然不能如愿;后参考文档 ── 使用 SSH 登录 Linux 实例,一番操作倒是可以登录,却仍要输入密码,谜之设定,也是不得不服(也或许是还没折腾到位)。
  4. 无论是通过网页,还是基于终端操作,其体验尚可,与其他竞品倒是没有明显不足。值得一提的是,其云服务器,因为内置了 snap,因此安装些软件(如 DockerFlutter),倒是非常方便。
  5. 相比于阿里云,腾讯云的重启速度是真的快(不清楚是否跟已有的应用数有关),阿里云当内存使用超过一定阈值,就会卡死,使得所部署的应用,都无法访问,只得重启,这个过程至少 2 分钟以上(在关键时候,这很漫长)。
  6. 因为规定,目前所有网站访问都需备案(如未备案 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,具体操作如下:

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 文件的完整演示:

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 Wikijs Error

仔细看了下 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

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

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

您可能感兴趣的文章

Tags

Great! You've successfully subscribed.
Great! Next, complete checkout for full access.
Welcome back! You've successfully signed in.
Success! Your account is fully activated, you now have access to all content.