Last updated on

玩转个人服务器

前言

搭建自己服务的时候,一些偏实践的操作

需求: 希望能够舒适的使用自己需要的服务

拆解下这个需求: 服务可能同时有前端、后端能力诉求 部署和维护复杂度可控

方案

纯前端可以用 Vercel 进行部署,免费,部署体验还好 带后端的服务就要用服务器了

Vercel

https://vercel.com/ 注册账号,Add Poject 就可以 Import Git Repository 了

image

这个比较简单,自己走一遍就知道了

接着说服务器

你要先买个服务器,这个根据自身诉求,去 B 站搜购买攻略,如果你不知道自己有啥诉求,那就买便宜的就行 :P 买服务器本质上你向云厂商买了俩

  • 公网 ip
  • 计算/存储资源

公网 ip 是最重要的,一般运营商不向个人提供了(地区之间有差异),如果你技术比较强,也能搞到公网 ip 资源用自家的当然更爽

服务器到手,链接上去,我推荐用 https://1panel.cn/ 进行管理

image

提供了命令行链接、文件管理、Docker 管理等一系列 GUI 操作服务器的能力

提示可能会遇到的坑

  1. 备案和云厂商是绑定的,备案要求你先有云服务资源
    1. 为什么要备案?
      1. 国内云服务器在通过域名访问的时候会进行检测,若未备案会被拦截
      2. 在某些平台上做开发也会要求访问的域名备案,如微信
    2. 备案备的是域名,由对应云厂商提供服务保障,在同一家云厂商内切换服务器不需要重新搞,但换了云厂商需要重新搞
  2. 服务器默认只开放部分端口让外界访问,比如你跑了某服务在 :4321 上,不去防火墙开启 4321 的端口访问是无法通过 公网 IP:4321 访问到的

域名优化

服务器

服务器目前你有了一个公网 ip,服务部署在若干端口上可以访问,现在每增加一个服务都需要你去增加防火墙开放端口,而且对外暴露了公网 ip

我们可以通过域名 + 反向代理来解决这个麻烦

域名同样去各种信息平台如 B 站搜索购买攻略,这个不和云厂商耦合的

首先配置 DNS 解析,让域名访问能够解析到你购买的服务器

image

以我在机器上跑的一个 Next 项目为例子,跑 npm run prod 跑在了 3001 端口上

image image

访问地址 https://next.sedationh.top/

这样我们通过 next.sedationh.top 就能访问到跑在机器上的 3001 端口的服务,而不用去开防火墙端口了

这套方向代理 1Panel 通过 GUI 的方式就可以配置,下层是靠 Nginx 支持的

值得一提的是 1Panel 提供了证书管理的能力,很轻松的就可以让你的服务器用上 HTTPS 去文档了解

其他

VPS 是 Virtual Private Server 的缩写,中文通常翻译为”虚拟专用服务器”。 VPS 全面测评

Vercel

对于 Vercel,不用你提供域名,它会结合你的项目名给你在 vercel.app 下分配一个可用的域名,如 https://epub-html.vercel.app 自动加 SSL 证书

但 vercel.app 被墙掉了,这个域名被墙掉了,可以通过配置 CNAME 来解析

CNAME 记录地址:cname-china.vercel-dns.com

https://epub-html.sedationh.top/

image

Cloudflare

image

Cloudflare 又名 赛博菩萨,提供了许多免费可靠的服务,我随便列举点

  • 静态托管
  • Worker
  • R2

网上有许多教程和视频,任君折腾

服务

最后推荐一些我用过的 Self Hosted

memos

https://github.com/usememos/memos image

alist

https://github.com/AlistGo/alist image 个人网盘

planka

https://github.com/plankanban/planka image 看板服务

探索有还有哪些好玩的? 下面俩是很好的开始

在使用上面的服务的时候,尽量使用 Docker 进行部署和管理 你可能会遇到墙,可以使用 https://dockerproxy.net/ 来解决