5 Commits

Author SHA1 Message Date
dependabot[bot]
e38f8e3a49 build(deps): bump themes/hello-friend from 3ffa812 to 05c4ecf
Bumps [themes/hello-friend](https://github.com/panr/hugo-theme-hello-friend) from `3ffa812` to `05c4ecf`.
- [Release notes](https://github.com/panr/hugo-theme-hello-friend/releases)
- [Commits](3ffa8121a0...05c4ecfd03)

---
updated-dependencies:
- dependency-name: themes/hello-friend
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-06-11 02:57:17 +00:00
f04bb7dc4e Merge pull request #67 from Colin-XKL/text-lint
Text lint and fix
2023-06-06 14:20:12 +08:00
github-actions[bot]
663265dccc chore: lint text and auto correct 2023-06-06 06:13:34 +00:00
263610a74c Update text-lint.yml 2023-06-06 14:13:06 +08:00
17f59aa8c7 Create text-lint.yml 2023-06-06 14:07:58 +08:00
30 changed files with 668 additions and 754 deletions

30
.github/workflows/text-lint.yml vendored Normal file
View File

@@ -0,0 +1,30 @@
name: Check and correct text
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
check-and-lint-text:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: huacnlee.autocorrect
uses: huacnlee/autocorrect-action@v2.5.4
with:
args: --fix
- name: Create Pull Request
uses: peter-evans/create-pull-request@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
commit-message: "chore: lint text and auto correct"
title: "Text lint and fix"
labels: "Lint"
author: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
branch: "text-lint"
body: "Some words and sentences need to be updated."

View File

@@ -19,7 +19,7 @@ lastmod: 2021-05-10
## Catch Me ## Catch Me
- 博客主页:https://blog.colinx.one - 博客主页:https://blog.colinx.one
- Github 主页: https://github.com/Colin-XKL - Github 主页:https://github.com/Colin-XKL
- Email: Colin_XKL#outlook.com - Email: Colin_XKL#outlook.com
@@ -27,6 +27,6 @@ lastmod: 2021-05-10
获取支持/服务 获取支持/服务
支持公益事业发展, 如任何非盈利机构有 IT 服务部署 / 网站托管或维护 / 架构咨询 / 问题排障 等需求可直接联系, 在能力范围内提供无偿支持 支持公益事业发展,如任何非盈利机构有 IT 服务部署 / 网站托管或维护 / 架构咨询 / 问题排障 等需求可直接联系,在能力范围内提供无偿支持
其他个人或企业有相关需求的可通过 email 免费咨询或以其他形式提供付费支持 其他个人或企业有相关需求的可通过 email 免费咨询或以其他形式提供付费支持

View File

@@ -1,10 +1,7 @@
--- ---
title: 个人向 Linux 新服务器初始化清单 title: 个人向 Linux 新服务器初始化清单
date: 2023-03-14 date: 2023-03-14
lastmod: 2023-03-15T09:14:44.308Z description: 一份 Linux 初始化清单, 避免每次拿到新的服务器都要一个个去各种地方搜集指令, 以做备忘 & 供有需要的朋友参考. 以目前最新的 Debian 11 Bullseye 为例
description: 一份 Linux 初始化清单, 避免每次拿到新的服务器都要一个个去各种地方搜集指令, 以做备忘 & 供有需要的朋友参考. 以目前最新的
Debian 11 Bullseye 为例
draft: false
categories: categories:
- 技术 - 技术
tags: tags:
@@ -14,15 +11,17 @@ tags:
- Traefik - Traefik
- Headless CMS - Headless CMS
--- ---
一份 Linux 初始化清单, 避免每次拿到新的服务器都要一个个去各种地方搜集指令, 以做备忘 & 供有需要的朋友参考.
服务器发行版我个人推荐 Debian 系列, CentOS 系现在已经开始分裂而且说实话对新手其实并不友好. Debian 是在兼容性, 易用性和稳定性之间都取得不错平衡的发行版. 新手推荐 Ubuntu, 不过最近商业化有点过度, 夹带了越来越多的私活, 我个人所有新安装的 Linux 已经全线转向 Debian. 下文以目前最新的 Debian 11 Bullseye 为例
> azure 干净的 debian 11 镜像, 资源使用情况供参考 一份 Linux 初始化清单,避免每次拿到新的服务器都要一个个去各种地方搜集指令,以做备忘 & 供有需要的朋友参考。
服务器发行版我个人推荐 Debian 系列,CentOS 系现在已经开始分裂而且说实话对新手其实并不友好。Debian 是在兼容性,易用性和稳定性之间都取得不错平衡的发行版。新手推荐 Ubuntu, 不过最近商业化有点过度,夹带了越来越多的私活,我个人所有新安装的 Linux 已经全线转向 Debian. 下文以目前最新的 Debian 11 Bullseye 为例
> azure 干净的 debian 11 镜像,资源使用情况供参考
> >
> \~1G Disk, \~100M RAM, ~300 packages > ~1G Disk, ~100M RAM, ~300 packages
本文仅列举主要事项和操作, 新手可先行阅读这篇文章熟悉概念. [云服务器入门指南](https://blog.colinx.one/posts/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/) 本文仅列举主要事项和操作,新手可先行阅读这篇文章熟悉概念。[云服务器入门指南](https://blog.colinx.one/posts/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/)
正文开始 正文开始
@@ -39,9 +38,10 @@ tags:
// 添加到wheel用户组自动获得sudo权限 // 添加到wheel用户组自动获得sudo权限
useradd -m --groups wheel colin useradd -m --groups wheel colin
``` ```
也可直接编辑`/etc/sudoers` 文件为新用户添加 sudo 权限, 使用 `visudo` 指令可以自动帮你校验, 避免配置写错把系统搞崩 也可直接编辑`/etc/sudoers` 文件为新用户添加 sudo 权限,使用 `visudo` 指令可以自动帮你校验,避免配置写错把系统搞崩
### 1.3 镜像源与基础软件 ### 1.3 镜像源与基础软件
@@ -52,6 +52,7 @@ useradd -m --groups wheel colin
一般情况下,将  `/etc/apt/sources.list`  文件中 Debian 默认的源地址  `http://deb.debian.org/`  替换为  `http://mirrors.ustc.edu.cn`  即可。 一般情况下,将  `/etc/apt/sources.list`  文件中 Debian 默认的源地址  `http://deb.debian.org/`  替换为  `http://mirrors.ustc.edu.cn`  即可。
```shell ```shell
//for debian //for debian
sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
@@ -60,7 +61,7 @@ sudo sed -i 's/deb.debian.org/mirrors.ustc.edu.cn/g' /etc/apt/sources.list
sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list sudo sed -i 's@//.*archive.ubuntu.com@//mirrors.ustc.edu.cn@g' /etc/apt/sources.list
``` ```
CentOS 系建议启用 EPEL, PowerTools 等 repo 以更方便地安装常用软件和工具. 此处不再赘述 CentOS 系建议启用 EPEL, PowerTools 等 repo 以更方便地安装常用软件和工具。此处不再赘述
推荐的几个国内镜像站: [清华大学 TUNA 镜像站](https://mirrors.tuna.tsinghua.edu.cn/), [中科大 USTC LUG 镜像站](https://mirrors.ustc.edu.cn/), [腾讯镜像站](https://mirrors.cloud.tencent.com/) 推荐的几个国内镜像站: [清华大学 TUNA 镜像站](https://mirrors.tuna.tsinghua.edu.cn/), [中科大 USTC LUG 镜像站](https://mirrors.ustc.edu.cn/), [腾讯镜像站](https://mirrors.cloud.tencent.com/)
@@ -74,20 +75,20 @@ sudo apt install zsh tmux htop duf htop tldr screenfetch tree
### 1.4 SSH 安全 ### 1.4 SSH 安全
修改端口, 配置文件`/etc/ssh/sshd_config`. 重启机器或 sshd 服务后生效 修改端口,配置文件`/etc/ssh/sshd_config`. 重启机器或 sshd 服务后生效
在本机检查`~/.ssh/`有无 id_rsa 等已生成的 key. 如没有再使用 `ssh-keygen` 生成私钥 在本机检查`~/.ssh/`有无 id_rsa 等已生成的 key. 如没有再使用 `ssh-keygen` 生成私钥
将本机的公钥上传到远端, 再写入远端的 `authorized_keys` 中 将本机的公钥上传到远端,再写入远端的 `authorized_keys` 中
`cat ~/id_rsa.pub >> ~/.ssh/authorized_keys` `cat ~/id_rsa.pub >> ~/.ssh/authorized_keys`
注意修改权限, `~/.ssh/authorized_keys` 权限为 600. `~/.ssh/`为 400 注意修改权限,`~/.ssh/authorized_keys` 权限为 600. `~/.ssh/`为 400
如失败可参考这篇文章 debug. <https://superuser.com/questions/1137438/ssh-key-authentication-fails> 如失败可参考这篇文章 debug. [https://superuser.com/questions/1137438/ssh-key-authentication-fails](https://superuser.com/questions/1137438/ssh-key-authentication-fails)
### 1.5 设置 hostname ### 1.5 设置 hostname
可选, 为了便于识别和后续配置 oh-my-zsh 更美观 可选,为了便于识别和后续配置 oh-my-zsh 更美观
```shell ```shell
sudo hostnamectl set-hostname my-new-server sudo hostnamectl set-hostname my-new-server
@@ -100,7 +101,7 @@ sudo hostnamectl status
### 1.6 SWAP ### 1.6 SWAP
可选, 建议内存<2G 配置 swap, 大小至少为 2 倍物理内存 可选,建议内存<2G 配置 swap, 大小至少为 2 倍物理内存
推荐用 `fallocate` , 因为这个是最简单、最快速的创建交换空间的方法。 `fallocate`  命令用于为文件预分配块 / 大小。 推荐用 `fallocate` , 因为这个是最简单、最快速的创建交换空间的方法。 `fallocate`  命令用于为文件预分配块 / 大小。
@@ -123,8 +124,11 @@ sudo swapon /swap_space
// 使用 s 参数查看列表 // 使用 s 参数查看列表
sudo swapon -s sudo swapon -s
``` ```
每次重启后都要重新挂载磁盘分区。因此为了使之持久化,就像上面一样,我们编辑  `/etc/fstab`  并输入下面行: 每次重启后都要重新挂载磁盘分区。因此为了使之持久化,就像上面一样,我们编辑  `/etc/fstab`  并输入下面行:
``` ```
@@ -137,13 +141,12 @@ sudo swapon -s
### 1.7 绑定域名   ### 1.7 绑定域名  
可选, 绑定一个域名或者改下本地 host 便于后续访问 可选,绑定一个域名或者改下本地 host 便于后续访问
### 1.8 添加本地 SSH 别名 ### 1.8 添加本地 SSH 别名
配置文件为本机的 `~/.ssh/config` 配置文件为本机的 `~/.ssh/config`
格式如下 格式如下
```config ```config
Host serverA Host serverA
HostName myserver.domain.xyz HostName myserver.domain.xyz
@@ -157,7 +160,7 @@ Host serverA
#### Docker 安装 #### Docker 安装
可参考官网文档, 注意是 docker engine 的安装. [Docker 官方安装文档](https://docs.docker.com/engine/install/debian/) 可参考官网文档,注意是 docker engine 的安装。[Docker 官方安装文档](https://docs.docker.com/engine/install/debian/)
或者我之前写的 RSS MAN 部署文档中 docker 安装的部分 或者我之前写的 RSS MAN 部署文档中 docker 安装的部分
[RSS MAN X 安装部署指南/#1-docker 环境准备](https://blog.colinx.one/posts/rssmanx%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/#1-docker%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87) [RSS MAN X 安装部署指南/#1-docker 环境准备](https://blog.colinx.one/posts/rssmanx%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/#1-docker%E7%8E%AF%E5%A2%83%E5%87%86%E5%A4%87)
@@ -177,7 +180,7 @@ Host serverA
} }
``` ```
修改完保存重启 docker 服务即可生效. 可使用 `docker info` 命令检查是否生效 修改完保存重启 docker 服务即可生效。可使用 `docker info` 命令检查是否生效
### 2.2 OH-MY-ZSH ### 2.2 OH-MY-ZSH
@@ -185,6 +188,7 @@ Host serverA
```shell ```shell
sh -c "$(curl -fsSL [https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh](https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh))" sh -c "$(curl -fsSL [https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh](https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh))"
``` ```
安装插件 安装插件
@@ -195,24 +199,18 @@ git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/z
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting --depth=1 git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting --depth=1
``` ```
按需修改配置. 文件位置`~/.zshrc`, 下面为个人常用配置供参考. 注意去源文件修改对应项, 没有再到末尾加 按需修改配置。文件位置`~/.zshrc`, 下面为个人常用配置供参考。注意去源文件修改对应项,没有再到末尾加
```shell ```shell
# custom theme
ZSH_THEME="af-magic" // 简洁的主题, 一行, 推荐
ZSH_THEME="gnzh" // 更丰富的主题, 提示信息一行, 输入命令在另一行
# custom conf override # custom conf override
ZSH_THEME="af-magic"
CASE_SENSITIVE="false" CASE_SENSITIVE="false"
HYPHEN_INSENSITIVE="false" HYPHEN_INSENSITIVE="false"
plugins=(git z zsh-autosuggestions zsh-syntax-highlighting sudo) plugins=(git z zsh-autosuggestions zsh-syntax-highlighting sudo)
``` ```
日常管理服务器比较多,以及经常复制命令的建议用 gnzh 这个主题. 自定义配置,添加到末尾
![](https://user-images.githubusercontent.com/49100982/108254837-882d2a00-716c-11eb-9f49-3b5e6e62eb52.jpg "gnzh theme")
自定义配置, 添加到末尾
```shell ```shell
export ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20 export ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
@@ -224,31 +222,9 @@ export ZSH_AUTOSUGGEST_BUFFER_MAX_SIZE=20
source ~/.zshrc source ~/.zshrc
``` ```
```shell
// 自定义需求较高的推荐 space ship 这个主题
// 本地安装 nerd font 以正确显示部分图标
brew tap homebrew/cask-fonts
brew install --cask font-<FONT NAME>-nerd-font
// 推荐字体 fira code pro with nerd fonts. 安装完后更改本机终端字体
brew install --cask font-fira-mono-nerd-font
// 安装zsh 主题 space-ship
git clone https://github.com/spaceship-prompt/spaceship-prompt.git "$ZSH_CUSTOM/themes/spaceship-prompt" --depth=1
ln -s "$ZSH_CUSTOM/themes/spaceship-prompt/spaceship.zsh-theme" "$ZSH_CUSTOM/themes/spaceship.zsh-theme"
// 之后设置主题
ZSH_THEME="spaceship"
// 还有一些自用的推荐配置件文末附录
```
### 2.3 nano 代码文件规则 ### 2.3 nano 代码文件规则
日常常用文本编辑器为 nano, 轻量级编辑需求完全满足. 日常常用文本编辑器为 nano, 轻量级编辑需求完全满足。
```shell ```shell
curl https://cdn.jsdelivr.net/gh/scopatz/nanorc/install.sh | sh curl https://cdn.jsdelivr.net/gh/scopatz/nanorc/install.sh | sh
@@ -256,9 +232,9 @@ curl https://cdn.jsdelivr.net/gh/scopatz/nanorc/install.sh | sh
### 2.4 时区调整 ### 2.4 时区调整
一般安装完都是 UTC+0, 看日志什么的不方便. 服务器初始化的时候配置好后面可以免去很多麻烦 一般安装完都是 UTC+0, 看日志什么的不方便。服务器初始化的时候配置好后面可以免去很多麻烦
debian 系可用过 `timedatectl` 命令调整时区. 东八区可以用这个命令 debian 系可用过 `timedatectl` 命令调整时区。东八区可以用这个命令
```shell ```shell
sudo timedatectl set-timezone Asia/Shanghai sudo timedatectl set-timezone Asia/Shanghai
@@ -266,13 +242,13 @@ sudo timedatectl set-timezone Asia/Shanghai
### 2.5 厂商监控/SDK 卸载 ### 2.5 厂商监控/SDK 卸载
懂得都懂, 自己搜 懂得都懂,自己搜
## 3 - 进阶内容 ## 3 - 进阶内容
### 3.1 内核参数调优 ### 3.1 内核参数调优
一些内核参数调整, 交换内存阈值和 bbr, tcp fast open 等, 按需启用. 启用前务必确认自己了解对应字段的含义, 否则不如保留系统初始值. 一些内核参数调整,交换内存阈值和 bbr, tcp fast open 等,按需启用。启用前务必确认自己了解对应字段的含义,否则不如保留系统初始值。
配置文件位置 `/etc/sysctl.conf` 配置文件位置 `/etc/sysctl.conf`
@@ -295,18 +271,18 @@ sudo sysctl -p
### 3.2 其他进阶配置 ### 3.2 其他进阶配置
一些其他的系统维护技巧与策略,如 一些其他的系统维护技巧与策略,如
**配置文件管理** **配置文件管理**
所有应用 docker 化,通过 `docker compose` 文件管理 所有应用 docker 化,通过 `docker compose` 文件管理
配置共享存储, `rclone` 挂载 webdav, 同步 docker compose 等配置文件; 配置共享存储,`rclone` 挂载 webdav, 同步 docker compose 等配置文件;
traefik 网关作为统一出口, 负责服务发现和自动维护 HTTPS 证书, 自定义配置通过 headless CMS 如 directus 管理, traefik 设定为通过 http 方式获取远端配置即可. traefik 网关作为统一出口,负责服务发现和自动维护 HTTPS 证书,自定义配置通过 headless CMS 如 directus 管理,traefik 设定为通过 http 方式获取远端配置即可。
**数据库备份** **数据库备份**
所有数据相关的统一挂载到`/data/database/xxx`, 配置定时任务进行备份 所有数据相关的统一挂载到`/data/database/xxx`, 配置定时任务进行备份
以及配置 s3 等, 上传到其他存储介质和其他地域. 以及配置 s3 等,上传到其他存储介质和其他地域。
这些内容此处不再赘述, 有机会再单独写篇文章分享吧 这些内容此处不再赘述,有机会再单独写篇文章分享吧
END END
@@ -314,102 +290,10 @@ END
## 附录 ## 附录
* Install Docker Engine <https://docs.docker.com/engine/install/>
* RSSManX 安装部署指南 <https://blog.colinx.one/posts/rssmanx%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/>
* 云服务器入门指南 <https://blog.colinx.one/posts/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/>
* Portainer Install Doc <https://docs.portainer.io/start/install-ce/server/docker/linux>
```shell - Install Docker Engine [https://docs.docker.com/engine/install/](https://docs.docker.com/engine/install/)
# 个人自用配置, 搭配 space ship 主题使用, 建议安装 nerd font 以正确显示图标 - RSSManX 安装部署指南 [https://blog.colinx.one/posts/rssmanx%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/](https://blog.colinx.one/posts/rssmanx%E5%AE%89%E8%A3%85%E9%83%A8%E7%BD%B2%E6%8C%87%E5%8D%97/)
# ~/.spaceshiprc.zsh - 云服务器入门指南 [https://blog.colinx.one/posts/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/](https://blog.colinx.one/posts/%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%85%A5%E9%97%A8%E6%8C%87%E5%8D%97/)
# space ship 主题文档 - Portainer Install Doc [https://docs.portainer.io/start/install-ce/server/docker/linux](https://docs.portainer.io/start/install-ce/server/docker/linux)
# https://spaceship-prompt.sh/getting-started/
SPACESHIP_USER_SHOW="always"
SPACESHIP_USER_PREFIX=""
SPACESHIP_USER_COLOR="007"
SPACESHIP_USER_COLOR_ROOT="red"
SPACESHIP_USER_SUFFIX=""
SPACESHIP_HOST_SHOW="always"
#SPACESHIP_HOST_PREFIX="\e[3#1m@"
SPACESHIP_HOST_PREFIX="@"
SPACESHIP_HOST_COLOR="black"
SPACESHIP_HOST_COLOR_SSH="green"
SPACESHIP_DIR_TRUNC="0"
SPACESHIP_DIR_TRUNC_PREFIX=".../"
SPACESHIP_PROMPT_ORDER=(
dir # Current directory section
git # Git section (git_branch + git_status)
hg # Mercurial section (hg_branch + hg_status)
package # Package version
node # Node.js section
bun # Bun section
deno # Deno section
ruby # Ruby section
python # Python section
elm # Elm section
elixir # Elixir section
xcode # Xcode section
swift # Swift section
golang # Go section
perl # Perl section
php # PHP section
rust # Rust section
haskell # Haskell Stack section
scala # Scala section
kotlin # Kotlin section
java # Java section
lua # Lua section
dart # Dart section
julia # Julia section
crystal # Crystal section
docker # Docker section
docker_compose # Docker section
aws # Amazon Web Services section
gcloud # Google Cloud Platform section
azure # Azure section
venv # virtualenv section
conda # conda virtualenv section
dotnet # .NET section
ocaml # OCaml section
vlang # V section
zig # Zig section
purescript # PureScript section
erlang # Erlang section
kubectl # Kubectl context section
ansible # Ansible section
terraform # Terraform workspace section
pulumi # Pulumi stack section
ibmcloud # IBM Cloud section
nix_shell # Nix shell
gnu_screen # GNU Screen section
exec_time # Execution time
async # Async jobs indicator
line_sep # Line break
battery # Battery level and status
jobs # Background jobs indicator
exit_code # Exit code section
sudo # Sudo indicator
char # Prompt character
)
SPACESHIP_RPROMPT_ORDER=(
time # Time stamps section
user # Username section
host # Hostname section
)
cdl() {
cd "$@" && ls;
}
cdll() {
cd "$@" && ls -lh;
}
```

View File

@@ -26,7 +26,7 @@ categories:
## 答案 ## 答案
我想要什么? 我想要什么?
这个问题困扰了我很久。 这个问题困扰了我很久。

View File

@@ -1,7 +1,7 @@
--- ---
title: 前端静态资源加载的一些优化 title: 前端静态资源加载的一些优化
date: 2022-05-06 date: 2022-05-06
description: 最近在折腾优化博客,由于全站都是部署在Netlify、Vercel的CDN上,都是海外节点,国内访问延迟高,在想办法优化下访问速度和体验。这篇文章来探讨下前端CSS和JS资源的加载。优化目标主要就两个:1. 尽可能快,但是不希望我引入的辅助性第三方库影响到页面体验,不要阻塞主要内容渲染. 2. 为了快第三方静态资源肯定是上CDN,但是要有容灾,CDN挂了要能fallback到其他url description: 最近在折腾优化博客,由于全站都是部署在 Netlify、Vercel 的 CDN 上,都是海外节点,国内访问延迟高,在想办法优化下访问速度和体验。这篇文章来探讨下前端 CSS 和 JS 资源的加载。优化目标主要就两个:1. 尽可能快,但是不希望我引入的辅助性第三方库影响到页面体验,不要阻塞主要内容渲染。2. 为了快第三方静态资源肯定是上 CDN,但是要有容灾,CDN 挂了要能 fallback 到其他 url
categories: categories:
- 技术 - 技术
tags: tags:

View File

@@ -54,7 +54,7 @@ tags:
安装好油猴插件后,你可以在 [Greasyfork.org](https://greasyfork.org/zh-CN/) 上下载各种黑科技般的脚本。安装成功后,油猴会在你进入符合条件的网页时自动启用对应的脚本。比如,你安装了 AC 的这个脚本,而这个网页是适配了某度的,那么当你进入某度的网页时,油猴就会自动启用这个脚本。快来领取属于你的纯净版度度吧。 安装好油猴插件后,你可以在 [Greasyfork.org](https://greasyfork.org/zh-CN/) 上下载各种黑科技般的脚本。安装成功后,油猴会在你进入符合条件的网页时自动启用对应的脚本。比如,你安装了 AC 的这个脚本,而这个网页是适配了某度的,那么当你进入某度的网页时,油猴就会自动启用这个脚本。快来领取属于你的纯净版度度吧。
![](https://blog-1301127393.file.myqcloud.com/BlogImgs/20200121231059.png) ![](https://blog-1301127393.file.myqcloud.com/BlogImgs/20200121231059.png)
前面介绍的几个,都只是借助第三方工具来屏蔽网页上特定的碍眼的元素。如果我们要阅读来自不同网站的新闻,为了获得机制纯净的阅读体验,难道要用 AdBlock 一个一个选中页面中除文章主体文字以外其他所有元素? 对于这种页面结构非常固定的一类网站,我们是否可以通过某种方式,来只提取页面主体的文字,以优化我们的阅读体验呢? 前面介绍的几个,都只是借助第三方工具来屏蔽网页上特定的碍眼的元素。如果我们要阅读来自不同网站的新闻,为了获得机制纯净的阅读体验,难道要用 AdBlock 一个一个选中页面中除文章主体文字以外其他所有元素?对于这种页面结构非常固定的一类网站,我们是否可以通过某种方式,来只提取页面主体的文字,以优化我们的阅读体验呢?
### 使用浏览器自带的阅读工具 ### 使用浏览器自带的阅读工具
@@ -67,7 +67,7 @@ _[注:区别与 2020 年新的基于 Chromium 内核的新 Edge 浏览器,
### 使用第三方阅读工具 - [简阅 SimpRead](http://ksria.com/simpread/) ### 使用第三方阅读工具 - [简阅 SimpRead](http://ksria.com/simpread/)
![](https://i.loli.net/2020/01/21/ZcsEIv8wBfjOmVa.png) ![](https://i.loli.net/2020/01/21/ZcsEIv8wBfjOmVa.png)
也许你买不起苹果,受不了 Win10,你依然可以通过安装第三方工具的方式享受纯净的阅读体验。简阅,正如他的名字,旨在为你提供简约的阅读视图。作者为了实现 “简单阅读” 这个小目标, 主动适配了数百个常见的文字为主体的网站,并设计为可以自动检测网页结构,对于漫天飞舞的各类热门冷门的小说网站、新闻网站,都可以自动识别并优化为适合阅读的页面。 也许你买不起苹果,受不了 Win10,你依然可以通过安装第三方工具的方式享受纯净的阅读体验。简阅,正如他的名字,旨在为你提供简约的阅读视图。作者为了实现“简单阅读”这个小目标,主动适配了数百个常见的文字为主体的网站,并设计为可以自动检测网页结构,对于漫天飞舞的各类热门冷门的小说网站、新闻网站,都可以自动识别并优化为适合阅读的页面。
恭喜你!利用上面介绍的几个工具,你已经可以在国内互联网环境中求的一份净土了。如果你感兴趣或是强迫症患者,欢迎前往 **打造沉浸式互联网体验【广告篇 - 下】** 恭喜你!利用上面介绍的几个工具,你已经可以在国内互联网环境中求的一份净土了。如果你感兴趣或是强迫症患者,欢迎前往 **打造沉浸式互联网体验【广告篇 - 下】**
温馨提示:下篇介绍的内容的内容将略有一点偏硬核,需要一点点的动手能力哦~ 温馨提示:下篇介绍的内容的内容将略有一点偏硬核,需要一点点的动手能力哦~