零成本搭建个人网站
方案
Markdown 笔记作为网站的内容。使用 MkDocs 将笔记转换为静态网站,部署到 serv00 免费服务器。将自己的域名解析到服务器。用户通过域名访问网站。
关于域名:
-
建议购买一个域名。完成本文部署后,国内网络可以直接访问你的网站。
-
不用自己的域名也行,可以使用 serv00 的免费域名
user.serv00.net
。但是 serve00.net 被墙了,国内网络无法直接访问你的网站。
如果你有魔法加速,在搭建过程中请开启魔法加速。部署完成后可以关闭加速。
1.领取 serv00 免费服务器
关于【邮箱不可用】的原因和解决方法:
- 一个 ip 只能申请一次,多次申请也会提示邮箱不可用:更换节点
- 部分邮箱不可用:更换邮箱
2.利用 MkDocs 将 Markdown 笔记转换为静态网站
-
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
-
安装 MkDocs
pip install mkdocs -U pip install mkdocs-material -U
-
创建 MkDocs 项目
mkdocs new ~/mkdocs/ cd ~/mkdocs
-
启动
mkdocs serve
,127.0.0.1:8000
预览网站mkdocs serve
-
将笔记复制到项目 docs 目录下,
127.0.0.1:8000
预览网站 -
生成网站资源
mkdocs build
3.部署静态网站到服务器
提供三种方案,选择一种即可:
- 云服务器 + 域名:需要购买服务器和域名,优点是自由度最高。
- serv00 免费服务器 +serv00 免费域名:优点是全免费,缺点是这样部署的网站国内无法访问。
- serv00 免费服务器 + 域名:优点是国内可以直接访问,缺点需要购买域名。
推荐购买一个域名,除了用来搭建网站,还以可以搭建家庭服务器,性价比很高。
方案一、使用自己的域名
使用 serv00 免费服务器,自己的域名,Cloudflare 代理。这也是推荐的方式。
国内网络 ---无法直达--- serv00服务器(个人网站)
国内网络 ---Cloudflare代理--- serv00服务器(个人网站)
优点:国内网络可以访问。
花费:需要购买一个域名。
-
登录 serv00 管理页面,添加静态网站
在
~/domains/
可以查看和管理刚添加的站点
-
上传静态资源到服务器
本地计算机执行
# 打包 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/
目的就是用自己的静态文件,替换默认的静态文件。
-
设置域名的 DNS 服务器为 Cloudflare
点击【添加站点】,填写自己的域名,根据后提提示完成即可。
-
域名解析
获取服务器 ip:登录 serv00 管理页面,点击【SSL】>【WWW websites】查看 ip
域名解析:在 Cloudflare 中添加解析。务必勾选代理。
恭喜你完成方案一,现在可以通过域名 soulio.top(自己的域名) 访问自己的网站了。
方案二、使用免费域名和服务器
使用 serv00 免费服务器 + serv00 免费三级域名 + 魔法网络
国内网络 ---魔法加速--- serv00服务器(个人网站)
优点:免费,零成本。
缺点:国内网络无法直达。
-
上传静态资源到服务器
本地计算机执行
# 打包 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 为例。
-
购买服务器
-
安装 Nginx
sudo apt install nginx-core -y
-
上传 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
-
Nginx 部署网站
-
添加配置文件 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; } # 域名 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; } }
-
生效配置
检查配置合理性
nginx -t
生效配置
nginx -s reload
-
-
DNS 解析
购买域名,域名解析到服务器 ip,示例:
恭喜你完成方案三,现在可以通过域名 soulio.top(自己的域名) 访问自己的网站了。
结语
-
- 持续更新 Linux、Docker、Nginx、HomeServer、Net 等计算机笔记。
- 笔记整理为【官方文档】的形式发布
- 暂定 两周更新一次
-
博客园 和 CSDN 用来发布一些碎片笔记。
在实践过程中可能会遇到一些难题,可以通过学习以下知识点解决:
scp 命令、Nginx 基础、DNS 解析、文件打包和解包命令、MkDocs 基础操作、Cloudflare 域名解析操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· Vue3状态管理终极指南:Pinia保姆级教程