搭建linux-command

2026-2-27 9 2/27

Linux命令查询网站(cmd.delu7.cn)部署小结

一、 项目与背景

本次部署的项目为 linux-command,一个开源的Linux命令查询工具。其核心是一个静态网站,提供了对600多个Linux命令的搜索、详解和示例功能。项目源码仓库位于:GitHub - jaywcjlove/linux-command at gh-pages

二、 部署环境

  • 服务器:阿里云ECS
  • 配置:2核 (vCPU) 2 GiB
  • 系统:Ubuntu 22.04 LTS
  • Web服务器:Nginx
  • 目标域名cmd.delu7.cn(与现有主站 7d.delu7.cn共存于同服务器)

三、 核心部署步骤与要点

以下为本次部署的关键流程与决策点总结:
  1. 项目获取与准备
    • 准备:创建网站目录
      mkdir -p /app/xxx/xx/
      cd /app/xxx/xx
      • 获取方式:从GitHub仓库克隆源码到创建的网站目录下。
      • # 执行浅层克隆,--depth 1 表示只克隆最近1次提交的历史 git clone --depth 1 --no-single-branch https://github.com/jaywcjlove/linux-command.git .
      • 目录结构:项目构建后,核心网站文件index.html位于  dist/目录下。(dist (distribution) 目录通常是构建过程完成后存放最终成品文件的地方)
      • ##1.安装 Node.js 和 npm
        # 下载并执行 NodeSource 的安装脚本,这里我们安装 LTS 版本
        curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
        
        # 安装 Node.js (npm 会作为依赖一同安装 过程慢 要等等)
        sudo apt-get install -y nodejs
        
        ##2.验证安装 (能看到版本号(如 v20.x.x 和 10.x.x),说明安装成功。)
         node -v
        
        npm -v
        
        ##3.进入项目目录并安装 npm 依赖
        npm install
        
        ##4.执行构建命令
        npm run build
        
        ##5.检查构建结果(在当前目录查找index.html)
        find . -name "index.html" -type f
        
  2. Nginx 站点配置
    • 核心挑战:实现在同一台服务器的80端口上,通过不同域名(7d.delu7.cncmd.delu7.cn)访问两个独立的网站。
    • 解决方案:采用 Nginx 基于域名的虚拟主机​ 配置。
      • cmd.delu7.cn创建独立的配置文件。
      • 关键配置项:

        server {
            listen 80; # 监听标准HTTP端口
            server_name cmd.delu7.cn; # 通过域名区分流量
            root /app/xxx/xx/dist; # 网站文件根目录
            index index.html;
            # ... 其他配置
        }
  3. HTTPS 证书迁移与自动化
    • 背景:主站已使用阿里云免费SSL证书。为追求部署和维护的完全自动化,将两个站点均迁移至 Let‘s Encrypt​ 证书,并使用 Certbot​ 工具管理。
    • 操作
      # 安装Certbot
      sudo apt install certbot python3-certbot-nginx -y
      # 为域名一键申请证书并自动配置Nginx
      sudo certbot --nginx  -d cmd.delu7.cn
    • 效果:Certbot 自动完成证书申请、修改Nginx配置、设置HTTP到HTTPS的重定向,并配置自动续期任务,彻底免去手动更新证书的烦恼。
  4. 依赖安装与安全修复
    • 项目包含 package.json,需要 npm install安装依赖以生成数据文件。
    • 遇到问题:安装过程中,sqlite3等依赖存在已知安全漏洞。
    • 解决:通过 npm audit fix --force命令强制升级有漏洞的依赖包至安全版本,确保生产环境安全。

四、 关键经验总结

  1. “一机多站”:通过Nginx的 server_name指令,可以轻松在同一IP和端口上托管多个网站,是基础而重要的运维技能。
  2. 证书管理策略
    • 阿里云证书:有效期90天,适合对稳定性要求高、变更不频繁的核心业务,但需手动续期部署。
    • Certbot (Let's Encrypt):有效期90天,支持全自动续期,适合追求自动化、惧于证书过期的所有场景。两者可在同一服务器共存。
  3. 配置分离原则7d.confcmd.conf保持独立是最佳实践。这使站点的维护、调试和更新互不干扰,逻辑清晰。
  4. 安全前置:在部署过程中同步处理NPM包的安全漏洞(npm audit)、配置Nginx安全响应头、检查文件权限,是构建安全线上服务的重要环节。

五、 最终成果

  • 博客主站https://7d.delu7.cn(WordPress动态站点)
  • Linux命令查询站https://cmd.delu7.cn(静态站点)
  • 两站均运行于标准HTTPS(443端口),并实现HTTP自动跳转。
  • SSL证书实现全自动续期,无需人工干预。
  • 服务器资源得到有效利用,架构清晰,便于后续维护与扩展。
此项目成功将一个实用的Linux学习工具部署上线,并为管理多个Web应用提供了标准的Nginx配置范式。
完整搭建过程及处理报错见笔记
- THE END -

delu

2月27日01:30

最后修改:2026年2月27日
0

非特殊说明,本博所有文章均为博主原创。

共有 0 条评论