普通视图

发现新文章,点击刷新页面。
今天 — 2024年9月17日首页

使用 Docker 自托管 VSCode 网页版

作者 Teacher Du
2024年8月28日 00:00

code-server 是一款强大的开源工具,它将 Visual Studio Code (VS Code) 带入了基于Web的在线环境。它使您可以通过Web浏览器远程访问和使用VS Code的功能,而无需在本地安装VS Code应用程序。

主要功能

远程开发:允许您从任何地方使用Web浏览器访问您的开发环境。这意味着您可以在不同设备和操作系统上一致地编写、编辑和运行代码。

轻量级:是一个轻量级的应用程序,资源占用较少,因此在资源有限的服务器上运行也很高效。这使得它成为为团队提供统一的开发环境或在云中进行开发的理想工具。

丰富的扩展生态系统:您可以安装并使用VS Code的广泛扩展库,从而扩展编辑器的功能。这包括语言支持、主题、代码片段和工作流程自动化等方面。

多语言支持:提供了广泛的编程语言支持,包括JavaScript、Python、Java、C++等。您可以在一个统一的开发环境中处理多种编程任务。

集成终端:它内置了一个终端,让您可以在同一界面中执行命令、安装依赖和运行应用程序。

版本控制:集成了版本控制系统(如Git),使您可以轻松地管理和跟踪代码更改。

团队协作:允许多个开发人员同时协作,通过共享工作区和代码库来增强团队协作能力。

自定义设置:您可以根据自己的需求自定义编辑器的设置,包括主题、快捷键和工作区配置。

使用 Docker 自托管 VSCode 网页版是一种便捷的方式,可以让你在任何设备上通过浏览器访问 VSCode 的功能。以下是部署的简要步骤:

安装 Docker

首先确保你的系统上安装了 Docker。你可以使用以下命令来安装 Docker:

1
curl -fsSL https://get.docker.com | sh

如果需要,你还可能需要关闭防火墙并设置 Docker 开机自启动:

1
2
3
systemctl disable --now firewalld
setenforce 0
systemctl enable --now docker

拉取 code-server 镜像

使用 Docker 命令拉取 code-server 镜像:

1
docker pull codercom/code-server:latest

创建目录

在宿主机上创建一个目录用于持久化配置和数据:

1
mkdir /docker/vscode -p && cd /docker/vscode

运行容器

运行 Docker 容器,并设置密码和端口映射:

1
docker run -d --name code-server -p 8000:8080 -e PASSWORD=your_password -v /docker/vscode/data:/root/.vscode-server codercom/code-server:latest

这里 your_password 替换为你想要设置的密码。

验证容器

检查容器是否成功运行:

1
docker ps -a

访问 VSCode

在浏览器中访问 http://服务器IP地址:8000 并使用设置的密码登录。

code-server 是一个开源项目,它允许你在远程服务器上运行 VSCode,并且提供了丰富的插件生态和界面定制化功能。使用 Docker 部署 code-server 可以轻松地在任何支持 Docker 的环境中运行,同时保证了代码的安全性和可移植性 。

此外,code-server 支持多人协作和远程开发,为开发者提供了前所未有的便捷体验 。它还支持丰富的自定义插件和扩展,满足了不同用户的个性化需求,使得开发过程更加高效、灵活 。

如果你在部署过程中遇到问题,可以参考社区提供的详细教程和文档,或者在相关论坛和社区中寻求帮助。

  •  

去不图床外链较慢说明

作者 Teacher Du
2024年8月25日 00:00

近期有小伙伴频繁反馈说图床外链速度较慢,杜老师因工作原因,一直没时间彻底解决该问题,只能通过增加临时节点缓解访问压力。目前工作压力减小,再次也说明一下该问题,以及相关解决措施。

原因分析

先说一下目前图床架构。官网源码及图床数据皆托管在家中服务器,通过内网穿透至外网服务器,使用星极世纪赞助的 CDN 进行加速。

负责内网穿透的外网服务器,这里简称为中转服务器。目前有三台中转服务器,一台负责中转图床官网,两台负责中转图片外链。

问题就出现在其中一台中转服务器上。该服务器被持续攻击中,使得回源失败,故而导致外链较慢。

有小伙伴可能好奇,为何躲在 CDN 后面的中转服务器会出现 IP 泄露的问题。这是因为在软云跑路后,自建的 CDN 节点不够用了,中转服务器只能放置前端了。

图床现状

目前图床在星极世纪赞助下勉强生存,之前的服务器还有一年使用周期,暂时不会考虑扩容。

不过小伙伴们不用担心运营问题。去不虽小,但不会出现数据丢失或突然跑路的情况。敬请放心使用!

随着图床用户越来越多,并发请求量增大的关系,造成外链速度减缓。可能根据使用量考虑增加 CDN 节点,或中转服务器。

在此感谢星极世纪的 CDN 赞助,会在后面联合星极世纪搞个活动,推广一下!

解决措施

为了解决现阶段的外链缓慢问题,已对现有架构做出调整。

将去掉图片外链中转服务器,CDN 直接回源至家中服务器的外网端口。

这种情况会在访问压力较大时出现重新拨号的问题,而家用带宽重新拨号后,IP 会自动更换。

虽然有 DDNS 实现解析同步,但解析缓存有至少一分钟的延迟,所以会出现访问失败的情况。

目前使用监控加备份线路的方式应对这一问题,如果小伙伴有更好方案,可以推荐给杜老师!

备份线路类似于中转服务器,通过内穿实现快速连接,相比 DDNS 回源生效速度快。

未来方向

除了外链问题外还有很多程序功能上面的建议,杜老师也一一反馈给了图床程序作者。

根据开发群中反馈,团队目前正大力开发 2.0 版本,预计本年的十月末会有内测版本。

不知是否会吸收小伙伴们之前提出的建议,还请期待。

另外如有低价稳定的云平台,欢迎留言推荐!

最后说下此文主要解释外链缓慢原因,以及杜老师的解决方案。

写的有一些乱,因为是变开会编写,领导那激情的发言总能不经意间打断杜老师的思路。又不能削领导,只能通过疯狂敲击键盘宣泄心中不满!

  •  
昨天以前首页

杜老师的视频录制流程

作者 Teacher Du
2024年8月22日 00:00

距离上次更新,杜老师收到了来自 18 位小伙伴的催更。奈何工作量比较大,近期一直销声匿迹。昨天终于忙完了所有的工作,在好好睡了一觉后,带着饱满的精神状态与各位分享一下近况!

聊聊近况

因为博客,小伙伴与杜老师从陌路走向熟知。很多小伙伴熟悉杜老师后会感叹一句:你真是老师啊!

杜老师是 2013 年正式步入社会,做的第一份工作是在培训公司当助教。

这份赶鸭子上架的工作,让杜老师内向的人设逐渐崩塌了,甚至一度被学员们评为头牌讲师「这个头牌,是正经的」

杜老师的这个称呼,就是从那时候来的,甚至于家人都会如此称呼我。故此并非自视甚高,而是职业本就如此。

目前依旧从事讲师工作,因公司的一些安排,需要录制视频教程。而近期一个月期间,一直奔忙于此。

时间紧任务重,需要梳理大纲、编写课件、整理文稿、录制视频、出试题目。

作为一个资深社畜,深知无工作不生活之理,所以不得已调整了权重,减少了博客运营的精力分配。

昨天终于忙完了所有的工作,在好好睡了一觉后,决定分享一下近况,补更近期所欠文章。

大致流程

  1. 梳理大纲:其实就是众位老师集思广益,堆叠出课程的内容。就好比说这位老师说需要个卧室,那位老师说需要个书房。杜老师的工作就是将所有的内容逻辑化系统化,简单来说就是从易到难;

  2. 编写课件:这是一门学问,需要考虑课程的系统性和完整性。杜老师所编写的是 Linux 系统类课程,涉及到的命令较多,要讲命令功能与实际工作相结合,让学员们知道在工作中遇到类似问题,应该如何解决;

  3. 整理文稿:目前公司讲师有限,很多交付工作「上课」都是由代理讲师完成的,各讲师的技术水平参差不齐。如何保证标准化授课流程呢?这就需要整理授课文稿,讲师照词念就行了,甚至不需要理解其中知识点;

  4. 录制视频:上课形式分为直播、录播两种,两者的侧重点不同,直播是老师直接讲解课程的内容,录播是观看标准课,遇到问题再由老师解答。可以理解成主动学习和被动学习。录播课程要求讲师条理清晰、解释透彻、举例易懂,总之要求还是非常高的。

所用工具

前面提到了直播和录播两种形式。每个讲师擅长领域不同,如杜老师更为偏好直播课程。

因为直播课程学员可以参与其中、与之互动,随时反馈授课情况,方便讲师第一时间做出调整,保证授课效果。

录播课程因为不能确定受众,所呈现的讲解形式更加但一,故而辅助词的限制很多,对于杜老师这种老湿傅,很难自由发挥。

还好有 AI 辅助工具。杜老师借助 Kimi「看清楚是 Kimi 不是 TiMi」平台生成文稿,再由 AI 生成杜老师音色语音文件。

之后通过 PPT 工具导出 PNG 格式图片,使用 Adobe Premiere Pro 剪辑并合成视频。

说的比较简单,但生成语音文件一步特麻烦。因为文稿中包含大量的命令,熟悉 Linux 的小伙伴都知道,很多命令是单词的缩写,口播并非标准英文发音。就需要手动去标识,非常耗时。

脚本分享

杜老师将 PPT 逐页导出 PDF「因为 AI 输出量有限,整体导出效果很不理想」并接入 Kimi 进行文稿生成。在使用前需要先安装 OpenAI 模块,以 Ubuntu 系统为例,命令如下:

1
2
3
4
sudo apt update
sudo apt -y install python3-pip
pip install --upgrade pip
pip3 install openai

以下是 Python 脚本,需调整 api_key,将 moonshot.pdf 替换为实际文件名:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
from pathlib import Path
from openai import OpenAI

client = OpenAI(
api_key="MOONSHOT_API_KEY",
base_url="https://api.moonshot.cn/v1",
)

file_object = client.files.create(file=Path("moonshot.pdf"), purpose="file-extract")

file_content = client.files.content(file_id=file_object.id).text

messages = [
{
"role": "system",
"content": "您是 Kimi,由 Moonshot AI 提供的人工智能助手,您更擅长中文和英文的对话。您会为用户提供安全,有帮助,准确的回答。同时,您会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。",
},
{
"role": "system",
"content": file_content,
},
{"role": "user", "content": "根据文中内容生成完善的演讲词。"},
]

completion = client.chat.completions.create(
model="moonshot-v1-32k",
messages=messages,
temperature=0.3,
)

print(completion.choices[0].message)
  •  

PicHoro 一个用于快速上传图片和管理图床的移动端工具

作者 Teacher Du
2024年8月19日 00:00

杜老师最近因工作繁忙,没有精力维护博客,预计在 9 月 2 日后恢复更新。有小伙伴反馈说在手机端使用去不图床时,出现 URL 遮挡的问题。奈何杜老师不懂得前端技术,只能寻求懂前端的朋友协助。在等待的期间,推荐一款手机端的图床管理工具!

工具介绍

PicHoro 是一款基于 Flutter 手机端图床管理、上传、下载工具。

截止至文章发布日,最新版本为 V2.4.0。与 PicGo 配置互通,可以直接扫码导入。

主要功能含云存储、图床、云服务器平台,以及网盘管理,文件上传、下载管理,及各种格式的链接分享。

支持多种图片、文本文件、音视频在线预览和播放。

下载地址

目前仅有安卓版本,杜老师已转存到网盘中,无需注册及下载网盘客户端,点击地址即可下载:

下载地址

工具配置

安装好工具后,首次打开时需授予文件读取权限。并点击下方最右侧的图标进入到设置页面:

在打开页面中,找到并且点击图床参数设置:

去不图床使用兰空程序,这里我们选择兰空图床:

默认参数为兰空免费版,这里我们点击右上角的图标,进入配置页面:

在子配置项中,选择任意一个,点击右上方三个点:

在下方弹窗中,点击修改配置:

登录去不图床,切换至 Tokens 页面,点击页面中创建 Token,并按下图所示勾选对应权限,最后点击保存:

记录图床生成的 Token,稍后粘贴到 PicHoro。注意 Token 仅显示一次,后期无法在图床中查看,如果遗矢还请重新生成:

根据下图所示依次填写相关信息。需要注意的是,除需要填写上面的 Token 外,其余参数按照下图内容即可。输入好信息后点击保存配置:

切换回子配置页面,再次点击已配置项右上角三个点:

在下方弹出中,点击替代图床默认配置:

返回上一级页面中,会看到部分设置项已被替换。这里无需任何操作,直接返回至主页面即可:

工具使用

在主页面的下方可选择拍照,或者从相册中选择图片。点击全部开始进行图片上传,上传后会自动复制图片外链地址:

通过主页下方的第二个图标,点击后可查看已上传的图片。在该页面中可点击图片进行流览,长按图片进行复制外链地址,勾选图片并点击右上角进行删除。点击齿轮图标可设置删除图片时是否删除云端文件:

  •  

Nginx 可视化编辑工具 nginxWebUI 安装和使用

作者 Teacher Du
2024年8月10日 00:00

在更新上一篇文章时有提到,类似 Nginx 可视化编辑的工具有很多。上篇提到的 Nginx UI 最近的更新还是一年前,本篇分享另一款可视化编辑工具,该工具更新较频繁,且功能也比较完善,感兴趣的小伙伴们可以试试!

写在前面

Nginx 可视化编辑工具的出现主要是为了简化 Nginx 配置复杂性,提高配置效率,降低运维成本。

Nginx 是一个功能强大的 Web 服务和反向代理服务器,但这也意味着它的配置项繁多且复杂,对于新手来说可能难以掌握。

使用可视化的编辑工具,用户可以通过图形界面进行配置,无需直接编辑配置文件,这样可以减少出错的可能性,同时也提高配置的效率。

如 nginxWebUI 这样工具,它不仅提供了配置 Nginx 的界面,还包括服务器指标监控、证书管理、日志查看功能。

使用工具,用户可轻松实现如反向代理、负载均衡、SSL 证书的申请与续签等高级功能,而且它们通常还提供了一些额外的便利性功能,比如配置文件版本控制、一键部署和自动续期等。

可视化工具的应用场景非常广泛,无论是对于需快速搭建环境的开发者,还是对于需管理多个 Nginx 服务器的运维人员,都能大大提高工作效率。例如,nginxWebUI 就支持集群管理,允许用户在一台机器上管理所有 Nginx 服务器配置文件,进行统一的修改与重启。

nginxWebUI 的简介

nginxWebUI 是一款图形化管理 Nginx 配置工具,可以使用网页来快速配置 Nginx 各项功能,包括协议转发、反向代理负载均衡、静态 HTML 服务器,证书自动申请、续签、配置,配置好后可一建生成 nginx.conf 文件,同时可控制 Nginx 使用此文件进行启动与重载,完成对 Nginx 的图形化控制闭环。

nginxWebUI 也可以管理多个 Nginx 服务器集群,随时一键切换到对应服务器上进行 Nginx 配置,也可一键将某台服务器配置同步到其它服务器,方便集群管理。

Nginx 本身的功能复杂,nginxWebUI 并不能涵盖 Nginx 的所有功能,但能覆盖 Nginx 日常 90%功能使用配置,平台没有涵盖到的 Nginx 配置项,可使用自定义参数模板,在配置文件中生成配置独特参数。

部署此工具后,配置 Nginx 时再也不用上网各种搜索配置代码,再也不用手动申请和配置 SSL 证书,只需在本工具中进行增删改查就可方便的配置和启动 Nginx。

nginxWebUI 的安装

1
docker run -itd -v /home/nginxWebUI:/home/nginxWebUI -e BOOT_OPTIONS="--server.port=8080" --net=host --restart=always cym1102/nginxwebui:latest

注意:启动容器时使用--net=host 参数,直接映射本机端口,因为内部 Nginx 可能用任意一个端口,所以必须映射本机所有端口。容器需映射路径/home/nginxWebUI:/home/nginxWebUI,此路径下存放项目所有数据文件,包括数据库和 Nginx 配置文件、日志、证书。且升级镜像时,此目录可保证项目的数据不丢失。-e BOOT_OPTIONS 参数可以填充 Java 启动参数,可以靠此项参数修改端口号。--server.port 不填默认则以 8080 端口启动。日志默认存放在/home/nginxWebUI/log/nginxWebUI.log

nginxWebUI 的使用

打开 http://IP:8080 进入 nginxWebUI 登录页面,第一次打开会要求初始化管理员账号:

进入系统,可在管理员管理里面添加修改管理员账号:

在 HTTP 参数配置中可以配置 Nginx 的 HTTP 项目,默认会给出几个常用的配置,其它需要的配置可自由增删改查. 可以勾选开启日志跟踪,生成日志文件:

在 TCP 参数配置中可以配置 Nginx 的 stream 项目参数,大多数情况下可不配置:

在反向代理中可配置 Nginx 反向代理,可开启 SSL 功能,可以直接从网页上传 PEM 文件和 KEY 文件,或者使用系统内申请的证书,可以直接开启 HTTP 转跳 HTTPS功能,也可以开启 HTTP2 协议:

在负载均衡中可配置 Nginx 负载均衡,在反向代理管理中可选择代理目标为配置好的负载均衡:

在证书管理中可以添加证书,并进行签发和续签,开启定时续签后系统会自动续签即将过期证书:

备份文件管理,这里可以看到 nginx.conf 的备份历史版本,Nginx 出现错误时可以选择回滚到某一个历史版本:

最终生成配置文件,可在此进行进一步手动修改,在确认修改无误后,可覆盖本机 conf 文件,并进行效验和重启,可选择生成单一 nginx.conf 文件还是按域名将各个配置文件分开放在 conf.d 下:

如有多台 Nginx 服务器,可都部署上 nginxWebUI,然后登录其中一台,在远程管理中添加其它服务器 IP 和用户名密码,就可以在一台机器上管理所有 Nginx 服务器了。提供一键同步功能,可以将某一台服务器的数据配置和证书文件同步到其它服务器中:

  •  

Nginx 可视化编辑工具 Nginx UI 安装和使用

作者 Teacher Du
2024年8月7日 00:00

应 LiuShen 童鞋需求,更新一篇 Nginx 可视化编辑工具部署及使用的教程。类似的工具有很多,本篇主要介绍下 Nginx UI,有关于其特性、安装、使用等的说明,感兴趣的小伙伴可以试一下!

写在前面

Nginx 在 Web 引擎占比中越来越高,原因在于 Nginx 的特性,如轻量性、高性能和反代理的能力。

现在云主机的用户越来越多,相比 Apache 这种重量级,Nginx 的轻量性成为了众多站长首选。

加上很多站长越来越青睐通过 Docker 部署服务,同 Nginx 的反代功能配合提高了配置效率。

但因为平时常用 Windows 系统,很多小伙伴不太会使用 Linux 部署网站的环境,所以绝大多数站长都选择了各类面板。

现有的面板功能性越来越强,体量也愈发的臃肿。有些小伙伴开始摒弃了面板部署,选择自行搭建、配置。

而 Nginx 的配置项比较多,徒手修改无疑增加了站点的维护压力。这时 Nginx 可视化编辑工具可以极大降低配置成本。

Nginx UI 的简介

Nginx UI 是一个全新的 Nginx 网络管理界面,旨在简化 Nginx 服务器的管理和配置。

它提供实时服务器统计数据、一键部署、Let’s Encrypt 证书自动续签以及用户友好的网站配置编辑工具。

此外,Nginx UI 还提供了在线访问 Nginx 日志、配置文件的自动测试和重载、网络终端、深色模式和自适应网页设计功能。

Nginx UI 采用 Go 和 Vue 构建,确保在管理 Nginx 服务器时提供无缝高效体验。

Nginx UI 的部署

Nginx UI 有多种部署方式,杜老师更偏好使用 Docker 来一键部署。下面命令是将 Docker 的 80 端口和 443 端口分别映射到主机的 8080 端口和 8443 端口:

1
2
3
4
5
6
7
8
9
docker run -dit \
--name=nginx-ui \
--restart=always \
-e TZ=Asia/Shanghai \
-v /mnt/user/appdata/nginx:/etc/nginx \
-v /mnt/user/appdata/nginx-ui:/etc/nginx-ui \
-v /var/www:/var/www \
-p 8080:80 -p 8443:443 \
uozi/nginx-ui:latest

部署好后,可以通过下面的地址访问 Nginx UI:

1
http://IP:8080

Nginx UI 的使用

Nginx UI 支持多种语言及日夜模式切换:

登录后可查看服务器的信息,包括运行时间、系统负载、CPU 内存与存储、流量统计等等:

可在网站管理页面中管理网站的配置,如添加站点等:

Nginx UI 支持负载均衡的配置:

可直接在 Nginx UI 中管理相关配置文件:

在正式页面中,可以管理站点证书,支持自动申请、续期:

在 Nginx 日志页面中可以查看访问日志和错误日志:

在环境页面中,可以添加并管理多台服务器 Nginx 的配置:

在用户管理页面中,可以添加多个用户,方便多人管理:

在偏好设置中,可以设置二次认证、日志分割等等:

  •  

通过 PicList 客户端工具对接去不图床

作者 Teacher Du
2024年8月1日 00:00

PicList 是一款高效云存储和图床平台管理工具,在 PicGo 的基础上经过深度二次开发,完整保留 PicGo 的所有功能。PicList 同时增加了完整的云存储管理功能,包括云端目录查看、文件搜索、批量上传下载、删除文件,另外还有更加强大相册和多项功能新增或优化。

工具特性

完美兼容:基于 PicGo 最新版,完美兼容已有 PicGo 插件和软件搭配生态;

图床管理:完整多平台云存储管理功能,上传、下载、删除等一站式解决;

图片处理:水印、压缩、旋转、格式转换功能,可自动化处理图片;

体验升级:更多的功能和更便捷的操作方式。

整合各编辑器

如何在 Typora 中使用 PicList?进入 Typora 的设置界面,选择图像,将上传服务设为 PicGo,然后在 PicGo 路径中填写 PicList 安装路径,如图所示:

如何在 Obsidian 中使用 PicList?在社区插件中搜索并安装 Image auto upload,然后进入插件设置页面,默认上传器改为 PicGo,将设置 PicGo server 为 http://127.0.0.1:36677/upload 即可,此外插件还额外支持通过 PicList 进行云端删除,请在删除接口内填入 http://127.0.0.1:36677/delete

通过自定义 API 设置对接去不图床

通过《改版去不图床 Token 的获取》教程获取图床的 Token,依次填写图床配置名称,设定接口网址为 https://7bu.top/api/v1/upload,设定请求方法为 POST,设定表单参数名 file,设定请求头{"Authorization": "Bearer TOKEN"}「记得将 TOKEN 换成自己的哦」设定返回数据 URL 路径 data.links.url,设置参考下图:

通过兰空图床插件对接去不图床

依次填写图床配置名称,设定版本为 V2,设定主机为 https://7bu.top,并设定 Token 为 Bearer TOKEN「记得将 TOKEN 换成自己的哦」设置参考下图:

  •  

如何借助 Cloudflare 自建 NPM 镜像教程

作者 Teacher Du
2024年7月29日 00:00

上一篇分享了如何借助 Vercel 自建 NPM 镜像,本篇我们借助 Cloudflare 自建 NPM 镜像。需要先拥有 Cloudflare 账户,并开启 Cloudflare Workers 功能。需要的小伙伴可以按照教程尝试一下!

创建 Worker 项

先登录 Cloudflare 账户,转到 Workers 选项卡。创建一个新 Worker,输入 Worker 名称例如 npm-mirror,点击部署:

点击打开 Worker 脚本地址并复制,编辑脚本:

编写脚本

粘贴复制脚本内容:

脚本中需要包含对 NPM 镜像的代理逻辑:

1
2
3
4
5
6
7
8
9
10
11
addEventListener(
"fetch", event => {
let url = new URL(event.request.url);
url.hostname = "unpkg.com";
url.protocol = "https";
let request = new Request(url, event.request);
event.respondWith(
fetch(request)
)
}
)

设置域名

在页面中点击设置,进入触发器选项卡,点击添加自定义域输入域名,如 npm.birdteam.net 进行绑定:

补充说明

脚本中的 url.hostname 字段指定需要反代的网址,如需反代其它域名,可以自行修改。如 fastly.jsdelivr.net 代码如下:

1
2
3
4
5
6
7
8
9
10
11
addEventListener(
"fetch", event => {
let url = new URL(event.request.url);
url.hostname = "fastly.jsdelivr.net";
url.protocol = "https";
let request = new Request(url, event.request);
event.respondWith(
fetch(request)
)
}
)

gcore.jsdelivr.net 的代码如下:

1
2
3
4
5
6
7
8
9
10
11
addEventListener(
"fetch", event => {
let url = new URL(event.request.url);
url.hostname = "gcore.jsdelivr.net";
url.protocol = "https";
let request = new Request(url, event.request);
event.respondWith(
fetch(request)
)
}
)
  •  

如何借助 Vercel 自建 NPM 镜像教程

作者 Teacher Du
2024年7月26日 00:00

应棋童鞋的需求更新一篇自建 NPM 镜像教程,这次我们借助 Vercel 搭建 NPM 镜像节点,晚几天还会发布篇《如何借助 Cloudflare 自建 NPM 镜像教程》主要解决现有境内节点限制问题。

注册账号

访问 Vercel 官网的 登录页面,根据页面提示填写相关信息完成注册:

安装 Vercel 命令行工具

安装 Vercel 命令行工具,可通过 npm 命令安装:

1
npm i -g vercel

成功安装后运行以下命令登录 Vercel 账户,注意 Vercel 登录会通过邮箱发送一封邮件确认:

1
vc login

创建项目

通过 GitHub 快捷登录 Vercel,并选择一个 Git 仓库进行部署。可以选择现有的仓库或新建一个仓库:

配置项目

使用下面命令在项目中创建一个名为 vercel.json 的文件,用于配置 Vercel 的部署选项:

1
touch vercel.json

将下面的内容粘贴到文件中:

1
2
3
4
5
6
{
"version": 2,
"routes": [
{"src": "/(.*)","dest": "https://unpkg.com/$1"}
]
}

部署项目

可使用 Vercel CLI 进行项目部署:

1
vc -A vercel.json --prod

部署成功后 Vercel 会提供一个默认的域名,也可自定义绑定自己的域名「这里杜老师随便选个了项目截图作为演示」

绑定域名

如需要使用自己的域名,可通过 Vercel 的 DNS 服务进行绑定。先在 Vercel 控制台添加域名,后修改 DNS 记录,将域名服务器指向 Vercel 提供的 DNS 服务器:

1
2
ns1.vercel-dns.com
ns2.vercel-dns.com

如不想把域名托管在 Vercel,也可进入项目的 Settings 页面,进入 Domains 项进行域名绑定:

  •  

杜老师说稿件征集

作者 Teacher Du
2024年7月23日 00:00

有小伙伴到聊天广场中反馈说杜老师又拖更了,虽然文章日期能对的上,但杜老师还是要承认确实是有拖更的情况。原因有二,一是最近工作太忙,日常打理回复评论没有问题,但确实没时间更新博文;二是不知道写点什么好。所以决定开启稿件征集!

写在前面

老粉应该多少了解一些,杜老师之前是云计算运维的讲师,博客建立之初主要分享一些课堂笔记。

后来随着工作变动,文章方向开始扩展,包含资源分享、视频教程、产品测评、生活日志等等。

现阶段因为工作的压力,很少能分出精力来接触新鲜事物,造成可书写的素材越来越少。

所以杜老师决定征集写文的素材,看看小伙伴们对哪方面的内容感兴趣。

征集规则

各类教程:

  1. 涉及服务器的环境搭建、软件配置、安全加固等等;
  2. 考虑到杜老师知识盲区,暂不接受前端、开发等问题的需求。

生活日志:

  1. 在回评时,发现很多小伙伴喜欢云养宠,杜老师可以分享一些家中逆子的搞怪日常;
  2. 如果对骑行感兴趣,也可咨询相关问题,杜老师也会介绍一些骑行相关的知识。

资源分享:

  1. 资源分享主要有两个大方向,一个是各类新奇软件的使用教程,一个是开源服务的搭建教程;
  2. 杜老师之前经常会分享一些公益服务,这里加个限定条件「需持续稳定运行三个月以上」

产品测评:

  1. 资源分享主要有两个大方向,一个是数码电子类产品「杜老师已购的会直接写测评文章,未购的可以考虑白嫖某东七天无理由」另一个是网络服务「最好是支持白嫖的,或者支持短期采购」
  2. 为了不给自己抹黑,不推荐任何增值类产品,如小伙伴们有需求,可在评论区中自行交流。

稿件列表

现有需求列表如下,发布时可能不会按照需求而命名文章,已发布的文章状态会更改为访问地址。注意该列表为需求提交顺序,并非发布顺序:

昵称需求状态
自建 NPM 镜像服务器教程https://dusays.com/732/
LIFL通过 PicList 客户端工具对接去不图床https://dusays.com/733/
Zero通过 Gitea 部署 Hexo 教程https://dusays.com/734/
LiuShenNginx 可视化编辑工具https://dusays.com/735/
网友小宋服务器操作系统安全加固项https://dusays.com/737/
wangyunzi通过 uPic 客户端工具对接去不图床因无苹果系统无法测试,暂不更新。
王云子镇博萌宠https://dusays.com/738/
Chlorine使用 Docker 自托管 VSCode 网页版https://dusays.com/742/
ChlorineOpengist 开源的代码片段分享工具https://dusays.com/743/
wwwNginx 集成 ModSecurity 实现 Web 应用防火墙功能https://dusays.com/744/
www如何配置 Nginx 防止 DDoS 攻击https://dusays.com/745/
www怎样在 Nginx 中配置防盗链https://dusays.com/746/

写在最后

除以上限定内容外,如有任何问题,同样可以在评论区交流。

博客运营至今,圈子里的博友还是蛮庞大的,涉及各行各业,总有一个大佬愿意提供有效帮助。

素材提交没有任何格式限制,在评论区留言需求即可。

本文章会置顶、保持更新。最终解释权归杜老师说所有。

  •  
❌
❌