零成本搭建个人网站

方案

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

关于域名:

  • 建议购买一个域名。完成本文部署后,国内网络可以直接访问你的网站。

  • 不用自己的域名也行,可以使用 serv00 的免费域名 user.serv00.net​。但是 serve00.net 被墙了,国内网络无法直接访问你的网站。

如果你有魔法加速,在搭建过程中请开启魔法加速。部署完成后可以关闭加速。

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.部署静态网站到服务器

提供三种方案,选择一种即可:

  • 云服务器 + 域名:需要购买服务器和域名,优点是自由度最高。
  • serv00 免费服务器 +serv00 免费域名:优点是全免费,缺点是这样部署的网站国内无法访问。
  • serv00 免费服务器 + 域名:优点是国内可以直接访问,缺点需要购买域名。

推荐购买一个域名,除了用来搭建网站,还以可以搭建家庭服务器,性价比很高。

方案一、使用自己的域名

使用 serv00 免费服务器,自己的域名,Cloudflare 代理。这也是推荐的方式。

国内网络   ---无法直达---   serv00服务器(个人网站)

国内网络 ---Cloudflare代理--- serv00服务器(个人网站)

优点:国内网络可以访问。
花费:需要购买一个域名。

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

    image

    ~/domains/​ 可以查看和管理刚添加的站点

    image

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

    本地计算机执行

    
    # 打包
    zip -r site.zip ~/mkdocs/site/
    

    上传到服务器 ~/domains/域名目录

    scp site.zip user@ip:~/domains/soulio.top/

    在 serv00 服务器上执行

    # 切换工作目录到 ~/domains/域名目录
    cd ~/domains/soulio.top/
    

    删除域名原来的静态资源

    rm -r public_html/

    解包

    unzip -d site.zip

    重命名

    mv site/ public_html/

    目的就是用自己的静态文件,替换默认的静态文件。

  3. 设置域名的 DNS 服务器为 Cloudflare

    注册并登录 Cloudflare

    点击【添加站点】,填写自己的域名,根据后提提示完成即可。

    image

  4. 域名解析

    获取服务器 ip:登录 serv00 管理页面,点击【SSL】>【WWW websites】查看 ip

    image

    域名解析:在 Cloudflare 中添加解析。务必勾选代理。

    image

恭喜你完成方案一,现在可以通过域名 soulio.top(自己的域名) 访问自己的网站了。

方案二、使用免费域名和服务器

使用 serv00 免费服务器 + serv00 免费三级域名 + 魔法网络

国内网络   ---魔法加速---  serv00服务器(个人网站)

优点:免费,零成本。
缺点:国内网络无法直达。

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

    本地计算机执行

    
    # 打包
    zip -r site.zip ~/mkdocs/site/
    

    上传到服务器

    scp site.zip user@ip:~/domains/xxx.serv00.net/

    在 serv00 服务器执行

    # 切换工作目录到域名文件夹
    cd ~/domains/xxx.serv00.net/
    

    删除域名原来的静态资源

    rm -r public_html/

    解包

    unzip -d site.zip

    重命名

    mv site/ public_html/

恭喜你完成方案二,现在可以通过 serv00 免费域名 soulio.soulio.top(需要魔法网络) 访问自己的网站了。

方案三、使用自己的域名和云服务器

如果你已经一台自己的云服务器,则可以直接部署在云服务器上。网站的加载速度可能会快一些。

国内网络 ---直达--- 国内服务器
国内网络 ---直达--- 国外服务器

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

  1. 购买服务器

  2. 安装 Nginx

    sudo apt install nginx-core -y
    
  3. 上传 MkDocs 项目的 site 文件夹到服务器

    在本地计算机上执行

    # 打包
    zip -r site.zip ~/mkdocs/site/
    

    上传

    scp site.zip user@ip:/usr/share/nginx/html/

    在服务器上执行

    # 解包
    unzip -d /usr/share/nginx/html/site.zip
    
  4. Nginx 部署网站

    1. 添加配置文件 etc/nginx/sites-enabled/mysite

      server {
          # 端口
          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;
      }
      

      }

    2. 生效配置

      检查配置合理性

      nginx -t
      

      生效配置

      nginx -s reload
      
  5. DNS 解析

    购买域名,域名解析到服务器 ip,示例:
    image

恭喜你完成方案三,现在可以通过域名 soulio.top(自己的域名) 访问自己的网站了。

结语

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

    • 持续更新 Linux、Docker、Nginx、HomeServer、Net 等计算机笔记。
    • 笔记整理为【官方文档】的形式发布
    • 暂定 两周更新一次
  • 博客园 和 CSDN 用来发布一些碎片笔记。

在实践过程中可能会遇到一些难题,可以通过学习以下知识点解决:
scp 命令、Nginx 基础、DNS 解析、文件打包和解包命令、MkDocs 基础操作、Cloudflare 域名解析操作。

posted @ 2024-07-18 10:10  soulio  阅读(175)  评论(0编辑  收藏  举报