2025 年 JLPT 考试时间、2026 年日本节假日发表

介绍本站使用的技术栈

这篇文章大约需要5分钟阅读。

自从今年网站内容又开始更新以来,本站背后使用的技术栈也进行了一些调整。使用的一些软件、操作系统等也进行了一番维护以让它们尽可能保持最新的状态。本文作为幕后工作介绍文章的第一弹,就来介绍一下本站主要使用的技术吧。

技术架构图

话不多说,首先请看本站的技术架构图,虽然只是一个简单的 WordPress 网站,为了保证它能长期较为稳定地运行,以及出了故障可以尽快恢复,站长我还是做了点功课的。

日语迷.com 网站技术架构图

域名与 CDN 提供商 Cloudflare

本站的域名 riyumi.com 是在 Cloudflare Registrar 注册的,自然也是用他们家提供的 DNS 服务对域名进行解析。顺带他们的 DNS 设置里有一项代理的功能,可以让用户不直接访问我租用的网站服务器,而是经由 Cloudflare 部署在各地的代理服务器来响应用户请求。这样一来可以不用担心暴露源站的 IP 地址,二来利用 Cloudflare 的缓存技术等让用户得到更好的访问体验。(至少我感觉在日本访问本站应该挺快的吧,欢迎其他地区的访客在留言区给我反馈)

VPS 提供商 ConoHa

照道理如果创建一个 WordPress 网站,最简单的方式是找一家提供 WordPress 服务的虚拟主机提供商即可。这一行在日本已经非常发达,自由职业者、主妇或者出于兴趣搭建个人博客的爱好者在日本也非常多,感觉开通网站和开通水电的难度相当,你要是愿意甚至可以在便利店付款开通。

不过站长我本人常年都有租用 VPS(Virtual Private Server)的习惯,所以既然手边已经有租用的服务器,那就省得再花冤枉钱去开通专门的 WordPress 服务了,虽然虚拟主机建站的方式很方便,但也比较死板,除了能运行 WordPress 之外也就没有太多可扩展性了。

至于为什么选择 ConoHa 家的 VPS,先卖个关子以后再讲。总之我在 VPS 里安装了我较为熟悉的 Arch Linux 作为服务器的操作系统。

运行在 Docker 容器里的 WordPress

为了让我租用的 VPS 的系统本身保持整洁方便维护,部署的网站等我都统统放到 Docker 容器里,WordPress 也不例外。我使用官方提供的镜像写一个 docker-compose.yml 文件(如下)就能很快把网站给搭建起来了。配合 Traefik 作为网关以及在 compose 文件的 label 里直接写配置,可以不怎么费力地就把 HTTPS,路由规则等配置好。

services:
  riyumi:
    image: wordpress:php8.2
    container_name: "riyumi"
    volumes:
      - /var/services/riyumi:/var/www/html
    restart: always
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.riyumi.rule=Host(`riyumi.com`)"
      - "traefik.http.routers.riyumi.entrypoints=websecure"
      - "traefik.docker.network=gateway"
    environment:
      WORDPRESS_DB_HOST: host.docker.internal
      WORDPRESS_DB_USER: ******
      WORDPRESS_DB_PASSWORD: ******************
      WORDPRESS_DB_NAME: ***********
    networks:
      - default
    extra_hosts:
      - "host.docker.internal:host-gateway"

networks:
  default:
    external: true
    name: gateway

数据库及备份

说是个人的习惯也好,为了节约资源也好。我习惯在操作系统上直接安装数据库,一方面可以提供给多个 Docker 应用使用,这样基本上每个 compose 文件只需要挂载一个文件系统即可,数据库则统一使用宿主系统上已经安装好的,通常对于 MariaDB 而言,小版本的更新不需要多余调整,直接更新系统上的软件包即可,就是大版本的升级也有 mariadb-upgrade 命令可以几乎一键完成,维护上很简单,尽管有一些停机时间,但对于本站而言想必不是什么大事,况且我还开通了 Always Online 功能,哪怕是网站宕机时,用户也能通过快照访问本站内容。

另一方面,则是方便备份了。我使用 restic 加上一个定时服务每天备份 MariaDB 里的数据库到 Cloudflare R2 的对象存储上,因为 restic 自带了去重和压缩功能,就算是每天全量备份,保留一个月的副本,目前也用不完 R2 提供的免费额度。

总结

以上大体上就是部署本站使用的技术栈了,感觉有了 Cloudflare 提供的免费服务,加上 Docker 提供的容器化。就算像 WordPress 这样历史悠久的 App 也不用担心部署带来的麻烦,也不必考虑 VPS 使用什么操作系统了。我目前使用 Arch Linux 作为服务器的操作系统,没有突发情况一般三个月到半年更新一次系统,在过去的几年(早在本站上线之前)不记得有出现过什么系统故障,无非就是重启导致的数分钟宕机而已。

评论

  1. walkingdog说道:

    你的网站很干净哦,我选的是 WordPress Host 的提供商。也用的 R2 存储 + Cloudflare CDN 以及域名都是在 CF 上买的。

标题和URL已复制