方案
网站原始内容:markdown笔记。
笔记转为网站:使用 MkDocs 将笔记转换为静态网站。
部署网站:使用 serv00 免费服务器。
域名:使用自购域名。也可以使用serv00的免费域名,但是免费域名无法CDN。
域名解析和CDN:cloudflare免费CDN。
1.领取 serv00 免费服务器
注册serv00的必要条件:
- 干净的ip:每个ip只能注册一次,ip不干净可以尝试不同的节点。
- 干净的邮箱:每个邮箱只能注册一次。
关于【邮箱不可用】解决技巧:
- 1.用不存在的邮箱
xxx@xxx
注册serv00 - 2.serv00注册成功后再去注册邮箱:xxx@xxx
- 3.登录serv00时,点击找回密码。serv00的密码就发到邮箱上了。
注册成功:serv00账号可登录serv00服务器,每个账号可以使用512MB内存+3GB硬盘资源。
注册教程:视频教程
tips:思源笔记 用户可以使用NoteToWebsite
插件直接将笔记导出为静态网站。跳过第2、3节,直接来到第4节:部署网站到服务器。
2.安装MkDocs
可选的:创建和激活 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-material
3.生成网站
创建 MkDocs 项目
mkdocs new ~/mkdocs/
cd ~/mkdocs
将笔记复制到项目 docs 目录下
启动预览网站
mkdocs serve
预览网站:http://127.0.0.1:8000
生成网站资源:执行mkdocs build
生成网站文件夹项目文件夹/site
mkdocs build
4.部署网站到服务器
提供三种方案,选择一种即可:
- 全免费方案:serv00 免费服务器 +serv00 免费域名。优点是免费,缺点是网速比较慢,跨国。
- 花点小钱方案:serv00 免费服务器 + 自购域名:优点是可以套cloudflare的免费CDN加速。
- 花点小钱方案:自购云服务器 + 自购域名:除了可以套cloudflare的免费CDN加速以外,还具最高的自由度。
推荐购买一个域名,性价比和可玩性很高。
建站方案一:免费域名+免费服务器
此时你应该已经成功注册了serv00,收到了邮件。你获得了serv00的登录地址、账号xxx
、密码和免费域名xxx.serv00.net
。可以开始部署网站到服务器。
-
上传静态资源到服务器:本地计算机执行
# 打包 zip -r site.zip ~/mkdocs/site/ # 上传到服务器 scp site.zip user@ip:~/domains/xxx.serv00.net/
-
替换网站资源:登录serv00服务器执行
# 切换工作目录到域名文件夹 cd ~/domains/xxx.serv00.net/ # 删除网站资源 rm -rf public_html/ # 解包 unzip site.zip -d public_html/ # 替换网站资源 mv site/ public_html/
访问网站:替换完成后就可以通过 xxx.serv00.net 访问网站了,xxx 是你注册serv00的用户名。
访问示例网站:https://soulio.serv00.net
网络体验:被墙挡住了。
建站方案二:自购域名+免费服务器
-
登录 serv00 管理页面,添加静态网站
在文件夹
~/domains/
可以查看和管理刚添加的站点
-
上传静态资源到服务器
本地计算机执行
# 打包 zip -r site.zip ~/mkdocs/site/ # 上传到服务器 ~/domains/域名目录 scp site.zip xxx@s6.serv00.com:~/domains/soulio.top/
-
替换网站资源:在 serv00 服务器上执行
# 切换工作目录到 ~/domains/域名目录 cd ~/domains/soulio.top/ # 删除网站资源 rm -rf public_html/ # 解包 unzip -d site.zip # 替换网站资源 mv site/ public_html/
接下来设置域名解析和CDN加速
具备条件:此时你应该已经购买了自己的域名,并注册并登录 Cloudflare
-
将你的域名转到Cloudflare管理:详情自行在网上搜索,不难
-
查看服务器IP: serv00 管理页面,点击【SSL】>【WWW websites】查看 ip
-
域名解析
- 域名解析到serv00服务器的ip
- 勾选代理,启用CDN加速
访问网站:通过自己的域名访问网站
访问示例网站:https://soulio.top
网络体验:通过 CF 代理加速后,加载速度能够接受的。
建站方案三:自购域名+自购服务器
这个就跟 serv00 没关系了。
-
购买服务器:买便宜的就行了
-
安装Nginx:服务器执行
sudo apt install nginx-core -y
-
上传网站资源:本地计算机执行
# 打包 zip -r site.zip ~/mkdocs/site/ # 上传 scp site.zip xxx@ip:~
-
部署网站资源:服务器执行
# 解包 unzip -d /usr/share/nginx/html/site.zip # 放置(放一个正常的位置就行) mv site/ /usr/share/nginx/html/
-
配置 Nginx 网站服务器
-
添加配置文件
/etc/nginx/conf.d/mysite.conf
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 <span class="katex--inline"><span class="katex"><span class="katex-mathml"><math xmlns="http://www.w3.org/1998/Math/MathML"><semantics><mrow><mi>u</mi><mi>r</mi><mi>i</mi></mrow><annotation encoding="application/x-tex">uri </annotation></semantics></math></span><span class="katex-html" aria-hidden="true"><span class="base"><span class="strut" style="height:0.6595em;"><span class="mord mathnormal">u</span><span class="mord mathnormal" style="margin-right:0.02778em;">r</span><span class="mord mathnormal">i</span></span></span></span></span>uri/ =404; } } </span>
-
检查配置合理性
nginx -t
-
加载配置
nginx -s reload
-
-
DNS 解析
购买域名,域名解析到服务器 ip,示例:
访问:可以通过自己的域名访问网站了
网络体验:走CDN反而比较慢,但是更安全。
关于https://bj.soulio.top这个网站:
比较有意思的是搭建这个网站没有购买云服务器,仅使用了HomeServer(家里的淘汰笔记本)+ipv6的非80/443端口。CDN发挥了关键的作用:
- 端口隐藏:将非80、443端口转换为80、443端口。
- 隐藏源服务器ip地址
- 对源主机起到了一定程度的保护
网站的作用是将思源笔记的所有文章分享出去
出于安全考虑,不久将会关闭这个网站。网站放到serv00或者云服务器才能安心。
结语
搭建网站的方案还是十分灵活的,各有优劣:
- 放在家里:底层本,高性能;面临网络安全的威胁。
- 放云服务器:安全性更高;续费贵,迁移麻烦。
- 放serv00:不用考虑安全问题,一直免费一直用;可用资源少,账号权限低。
动态网站:serv00也是可以搭建动态网站的,比如Typecho、WordPress、wiki.js。
体验:在512MB内存的限制下,WordPress和wiki.js表现得十分卡顿,wiki.js轻度使用下内存占用超过了400MB。Typecho的表现是最好的,内存占用仅几十MB,反应也比较快。
示例网站:typecho.soulio.top