零成本搭建个人网站

soulio / 2024-07-18 / 原文

方案

Markdown 笔记作为网站的内容。使用 MkDocs 将笔记转换为静态网站,部署到 serv00 免费服务器。将自己的域名解析到服务器。用户通过域名访问网站。

关于域名:

  • 建议购买一个域名。

  • 不用自己的域名也行,可以使用 serv00 的免费域名,但是国内无法直连,需要魔法。使用自己的域名则可以走 Cloudflare 代理,这样国内也可以直接。

必要条件:

  • 本文默认你拥有一个加速网络,而非大内网。即便领取了 serv00 的免费服务器,也无法在大内网中通过 ssh 登录和管理服务器。

1.申请 serv00

视频教程

serv00 领取地址

关于【邮箱不可用】的原因和解决方法:

  • 一个 ip 只能申请一次,多次申请也会提示邮箱不可用:更换节点
  • 部分邮箱不可用:更换邮箱

2.利用 MkDocs 将 Markdown 笔记转换为静态网站

  1. python 虚拟环境

    # 更新包列表
    sudo apt update
    

    安装python环境

    sudo apt install python3 python3-pip python3-venv -y

    python虚拟环境

    python3 -m venv .python-venv/

    激活python虚拟环境

    source .python-venv/bin/activate

    更新虚拟环境的 pip

    .python-venv/bin/pip install --upgrade pip

  2. 安装 MkDocs

    pip install mkdocs -U
    pip install mkdocs-material -U
    
  3. 创建 MkDocs 项目

    mkdocs new ~/mkdocs/
    cd ~/mkdocs
    
  4. 启动 mkdocs serve​,127.0.0.1:8000 ​预览网站

    mkdocs serve
    
  5. 将笔记复制到项目 docs 目录下,127.0.0.1:8000 ​预览网站

  6. 生成网站资源

    mkdocs build
    

3.部署静态网站到服务器

准备工作:打包 site 目录

zip -r site.zip ~/mkdocs/site/

使用云服务器

可以使用 Apache/Nginx 部署静态网站,此处以 Nginx 为例。

  1. 购买服务器

  2. 上传 MkDocs 项目的 site 文件夹到服务器

    scp -R ./site.zip 服务器:/usr/share/nginx/html/
    unzip -d site.zip
    
  3. Nginx 部署网站

    1. 安装 Nginx

      sudo apt install nginx-core -y
      
    2. 添加配置文件 etc/nginx/sites-enabled/mysite

      server {
          #80端口
          listen 80;
          server_name site.soulio.top;
      
      location / {
          root /usr/share/nginx/html/site;
          index index.html index.htm;
          charset utf-8;
          try_files $uri $uri/ =404;
      }
      

      }

    3. 生效配置

      检查配置合理性

      nginx -t
      

      生效配置

      nginx -s reload
      
  4. DNS 解析

    购买域名,添加一条解析到服务器 ip

使用 serv00 免费服务器

使用 serv00 提供的免费三级域名

优点:可以通过免费域名 xxx.serv00.net 访问自己的网站。
缺点:需要魔法。

  1. 上传静态资源到服务器

    scp -R ./site/ 服务器:~/domains/xxx.serv00.net/
    

    登录 serv00 服务器,修改文件夹名称,site 改为 public_html

使用自己的域名

优点:不需要魔法,国内网络可以访问。
缺点:需要购买一个域名。

  1. 上传静态资源到服务器

    scp -R ./site/ 服务器:~/domains/soulio.top/
    

    登录 serv00 服务器,修改文件夹名称,site 改为 public_html

  2. 登录 serv00 管理页面,添加静态网站

    • Domain:你的域名
    • Website type:Proxy
    • Proxy target:localhost
    • 其他选项则不用填
  3. DNS 解析和代理

    1. 注册 Cloudflare

    2. 域名解析服务转到 Cloudflare 旗下

    3. 添加一条解析记录,示例

      image

      注意:国内访问必须走 Cloudflare 的代理。


现在可以通过域名访问你的网站了

访问作者搭建的网站 soulio.top

在阅读本文或操作过程中遇到的难题,都可以通过学习以下知识点解决:
scp 命令、Nginx 基础、DNS 解析、文件打包和解包命令、MkDocs 基础操作、Cloudflare 域名解析操作。
您可以在网上自学这些知识点。关注我的博客或者网站(soulio.top),近期将更新这些知识点。