当前位置: 首页 > news >正文

轻量级个人建站

文章目录

  • 一、背景
  • 二、环境
  • 三、云服务器
  • 四、域名
  • 五、备案
    • 5.1 IPC备案
    • 5.2 公安联网备案
  • 六、web服务器
    • 6.1 Nginx部署
      • 6.1.1 安装Nginx
      • 6.1.2 启动Nginx
      • 6.1.3 配置Nginx
      • 6.1.4 测试Nginx配置
      • 6.1.5 重启Nginx
  • 七、证书申请
    • 7.1 证书选择
    • 7.2 Let’s Encrypt证书申请
      • 7.2.1 安装 Certbot
      • 7.2.2 申请证书
      • 7.2.3 配置Nginx
  • 八、API服务框架
    • 8.1 安装golang
    • 8.2 配置Proxy
    • 8.3 安装go-ctl
    • 8.4 安装go-zero
    • 8.5 api demo生成
    • 8.6 编译Demo
    • 8.7 运行Demo
    • 8.8 验证API
  • 九、总结
  • 十、参考资料

一、背景

        最近有幸参与到公司小程序的项目开发,感受到了轻量级开发的便捷性和高效性,同时也诱使我有学习个人建站的想法:在互联网上拥有一块专属的 “地皮”,用来展示我想展示的任何内容。

二、环境

  1. 云服务器:阿里云
  2. web服务:nginx
  3. API服务框架:go-zero
  4. 数据库:mysql
  5. 证书:Let’s Encrypt

三、云服务器

        考虑到后期维护成本,我最开始比较犹豫使用云服务器或者NAS & Docker组合。但是后面考虑到小程序的开发和部署,服务器需要备案等问题,最终还是选择了商用的云服务器。云服务器都还蛮贵的,不过基于目前企业比较主流的选择,最终我也选择了阿里云。

特性云服务器 (Cloud Server)NAS (Network Attached Storage)
核心定位远程计算、应用部署平台家庭 / 小型办公文件存储中心
主要用途搭建网站、运行程序、开发测试、数据备份照片视频备份、家庭影音库、文件共享
数据安全由云厂商保障,通常多副本存储,安全性高数据在自己手里,但需自己负责备份和维护
成本模式按月 / 年订阅(CPU、内存、带宽收费)一次性硬件购买,长期使用成本低

四、域名

        基于后期备案的需求,需要选购一个个性化的域名,它不仅是一个地址,更是你的个人品牌和数字身份。域名的选购和域名的解析,都在阿里云上进行。建议选购一些比较常用的域名,比如 .com、.cn 等。
        我的域名:zhiqinlin.cn

五、备案

        备案是指在国内的互联网上,为了保护个人、企业或组织的合法权益,需要向国内的互联网服务提供商(如阿里云、腾讯云等)申请备案。备案的主要目的是为了确保网站的正常运行和访问,同时也为了遵守国内的法律和规定。
        如果我们云服务器和域名已经购买,此时就可以申请备案。由于备案需要一定的时间去审核,所以如果比较着急的小伙伴,可以尽快申请备案。

5.1 IPC备案

        我在阿里云上购买的域名,所以需要在阿里云上申请 IPC 备案。如下是我的备案时间流程,大家可参考:
请添加图片描述

5.2 公安联网备案

        公安备案比较快,一般在一个工作日内就可以完成。备案完成后,会得到备案编号HTML代码&备案图标,这样,我们就有自己的"门牌号"拉:
请添加图片描述

六、web服务器

        Web 服务器是网站的核心,它负责接收和响应用户的访问请求。简单来说,它就像你家的 “保安室”,专门负责接待访客。选择哪个服务器,取决于你的具体需求。以下是几个主流服务器的特点:

服务器核心优势适用场景
Nginx高性能、高并发,资源占用低,擅长处理静态文件和反向代理大多数网站的首选,尤其适合高访问量的场景,常作为前端代理
Apache功能强大、生态成熟,模块丰富,配置灵活,兼容性好需要复杂配置、运行特定模块的传统项目,或对兼容性要求极高的场景
Caddy极简配置、自动 HTTPS,开箱即用,默认开启加密,非常省心个人项目、开发环境、或追求简单运维的中小型网站
IIS与 Windows 系统深度集成,管理方便,适合运行ASP.NET程序部署在 Windows Server 上的企业级应用,特别是使用微软技术栈的项目

        个人建议,新手从 Nginx 或 Caddy 开始。Nginx 性能最强,Caddy 配置最简单。我目前使用的是Nginx。

6.1 Nginx部署

6.1.1 安装Nginx

sudo yum install epel-release
sudo yum install nginx

6.1.2 启动Nginx

sudo systemctl start nginx

6.1.3 配置Nginx

@/etc/nginx/nginx.conf
http {...server {listen 80;#配置访问域名server_name zhiqinlin.cn www.zhiqinlin.cn;location / {root /var/www/myh5app;   #页面的的发布根路径index index.html;     #索引}}...
}

6.1.4 测试Nginx配置

sudo nginx -t

6.1.5 重启Nginx

sudo systemctl restart nginx

七、证书申请

        现在主流浏览器(Chrome、Edge、Safari 等)都有 “安全规则”:没有安装 SSL 证书的网站(即 “HTTP 网站”),会被标记为 “不安全”。

7.1 证书选择

         Let’s Encrypt: 是由互联网安全研究小组(ISRG)发起的非营利性公益项目,旨在通过免费提供 SSL 证书推动全球网站普及 HTTPS 加密。其证书由自动化系统颁发,完全免费且开源。
         阿里云商用证书: 是阿里云与全球知名商业 CA 机构(如 Symantec、GeoTrust、GlobalSign 等)合作提供的付费商业证书,属于商业服务范畴,证书颁发和管理有完整的商业服务体系支持。

对比维度Let’s Encrypt 证书阿里云商用证书
是否收费完全免费(永久免费)按类型收费(从百元 / 年到数万元 / 年不等)
证书类型仅支持 DV 证书(域名验证型)支持 DV 证书、OV 证书(组织验证型)、EV 证书(扩展验证型)
验证方式仅验证域名所有权(自动完成,无需人工审核)DV 同左;OV/EV 需验证企业 / 组织真实身份(人工审核,需提供营业执照等材料)
信任等级基础信任(浏览器认可,但不展示组织信息)OV/EV 信任等级更高:OV 显示组织名称;EV 地址栏显示绿色锁 + 组织名称,视觉信任度最强
有效期90 天(需定期自动 / 手动续期,不可延长)1-2 年(按购买时长,到期可续费)

        政府机构、教育机构等官方网站,代表着政府或教育机构的官方形象,需要较高的信任等级和严格的身份验证。DV 证书无法提供足够的组织身份验证,一般不适合使用,例如.gov、.edu 等后缀的域名通常需要使用 OV 或 EV 证书。 个人建站一般不会涉及到敏感数据传输的场景,使用Let’s Encrypt即可。

7.2 Let’s Encrypt证书申请

7.2.1 安装 Certbot

yum install epel-release -y         # 启用 EPEL 源
yum install certbot python3-certbot-nginx -y

7.2.2 申请证书

1. 申请证书

certbot certonly --webroot -w /data/nginx/cert -d www.zhiqinlin.cn -d zhiqinlin.cn

–webroot -w /data/nginx/cert:指定验证目录
-d www.zhiqinlin.cn -d zhiqinlin.cn:指定需要证书的域名

2. 证书生成后默认存放:

/etc/letsencrypt/live/www.zhiqinlin.cn/cert.pem //域名证书
/etc/letsencrypt/live/www.zhiqinlin.cn/fullchain.pem //包含域名证书和中间证书的文件
/etc/letsencrypt/live/www.zhiqinlin.cn/chain.pem //中间证书
/etc/letsencrypt/live/www.zhiqinlin.cn/privkey.pem //私钥

7.2.3 配置Nginx

1. 编辑Nginx配置文件

@/etc/nginx/nginx.conf 
http {...server {listen 443 ssl http2;#配置访问域名server_name zhiqinlin.cn www.zhiqinlin.cn;#配置证书ssl_certificate     /etc/letsencrypt/live/www.zhiqinlin.cn/fullchain.pem;ssl_certificate_key /etc/letsencrypt/live/www.zhiqinlin.cn/privkey.pem;ssl_protocols TLSv1.2 TLSv1.3;ssl_ciphers HIGH:!aNULL:!MD5;location / {root /var/www/myh5app;   #页面的的发布根路径index index.html;     #索引}}...
}

2. 重载 Nginx

nginx -t
systemctl restart nginx

八、API服务框架

        考虑到后期微信小程序的开发会涉及到API接口的调用,因此需要搭建一个API服务框架。目前我司的项目开发使用的go-zero框架开发,一站式微服务框架,它完美解决了新手在后端开发中常遇到的 “技术栈复杂、配置繁琐、性能难优化、生产落地难” 等痛点,同时贴合 Go 语言 “简单、高效” 的特性,能让新手快速从 “入门” 到 “写出可落地的服务”。菜鸟首选
        我目前的做法是在window下完成go-zero框架的Api服务开发,然后再部署到阿里云服务器下linux的环境下。

8.1 安装golang

        go 是 Google 开发的一种静态强类型、编译型、并发型,并具有垃圾回收功能的编程语言, 于 2009 年 11 月正式宣布推出,成为开放源代码项目,需要安装go的环境。
        此部分可参考:go 安装 (https://go-zero.dev/docs/tasks)

8.2 配置Proxy

        此需要配置Proxy,否则会出现安装失败的情况。

go env -w GOPROXY=https://goproxy.cn,direct

8.3 安装go-ctl

        goctl 是 go-zero 的内置脚手架,是提升开发效率的一大利器,可以一键生成代码、文档、部署 k8s yaml、dockerfile 等。

go install github.com/zeromicro/go-zero/tools/goctl@latest

8.4 安装go-zero

        go-zero 是一个基于 Go 语言的微服务框架,它提供了一整套的工具和库,帮助开发者快速构建和部署微服务。

go install github.com/zeromicro/go-zero@latest

8.5 api demo生成

        在完成了 goctl 安装 后,我们可以通过 goctl 创建一个最小化的 HTTP 服务来了解 goctl 的 go-zero api 服务的概况。

mkdir -p ~/workspace/api && cd ~/workspace/api 
goctl api new demo

demo的树形结构如下:

F:\soft\Git\Git\workspace\api\demo$ tree
.
├── demo.api --- 定义api接口
├── demo.go --- 主程序
├── etc
│   └── demo-api.yaml --- 配置文件
├── go.mod --- 依赖管理文件
└── internal├── config│   └── config.go --- 配置文件├── handler│   ├── demohandler.go --- 处理http请求│   └── routes.go --- 路由配置├── logic│   └── demologic.go --- 业务逻辑├── svc│   └── servicecontext.go --- 服务上下文└── types└── types.go --- 定义数据结构

8.6 编译Demo

Linux环境

set GOARCH=amd64
go env -w GOARCH=amd64
set GOOS=linux
go env -w GOOS=linuxgo build -o demo

Windows环境

go env -u GOOS
go env -w GOOS=windows
go env -u GOARCH
go env -w GOARCH=amd64go build -o demo

8.7 运行Demo

1. 运行可执行程序

F:\soft\Git\Git\workspace\api\demo
λ .\demo.exe -f etc/demo-api.yaml
Starting server at 0.0.0.0:8888...

2. 指令启动

F:\soft\Git\Git\workspace\api\demo
λ go run demo.go -f etc/demo-api.yaml
Starting server at 0.0.0.0:8888...

8.8 验证API

1. 新增测试代码

@F:\soft\Git\Git\workspace\api\demo\internal\logic\demologic.go
func (l *DemoLogic) Demo(req *types.Request) (resp *types.Response, err error) {// todo: add your logic here and delete this line
+	resp = new(types.Response)
+	resp.Message = req.Name	return
}

2. 验证API

C:\Users\qj-linzhiqin
λ curl --request GET 'http://127.0.0.1:8888/from/me'
{"message":"me"}

九、总结

        通过以上步骤,我们成功搭建了一个基于go-zero框架的API服务框架,并且通过Ngnix部署到了阿里云服务器下linux的环境下。之后我们可以通过该API服务框架,去实现更复杂的功能。期待!

十、参考资料

  1. Let’s Encrypt 证书申请 (https://www.51cto.com/article/824837.html)
  2. go-zero 微服务框架 (https://go-zero.dev/)
  3. go代理 (https://www.cnblogs.com/yubo-guan/p/18926955.html)
http://www.dtcms.com/a/453830.html

相关文章:

  • DevDay 2025 开发者大会看点
  • 什么网站可以免费做视频软件做网站导航按钮怎么做
  • 网站建设的基本要素有专门做任务的网站
  • 十六、Linux网络基础理论 - OSI模型、TCP/IP协议与IP地址详解
  • WDF驱动开发-PNP和电源管理
  • 网站的标题标签一般是写在网站 未备案 支付宝
  • 募投绘蓝图-昂瑞微的成长密码与未来布局
  • 公司网络营销的方案思路seo整站优化外包服务
  • 工程建设公司网站怎么查询网站的域名备案
  • TypeScript 对比 JavaScript
  • 焦作网站设计公司自己怎么做外贸网站
  • ros2 消息订阅与发布示例 c++
  • 廊坊网站建设廊坊企业文化建设网站
  • 纸做的花朵成品网站个人简介html代码模板
  • 【精品资料鉴赏】证券数据治理项目投标技术方案
  • AI大模型核心概念
  • 企业网站模板seo公益建设网站的作用
  • 阿里巴巴1688怎么做网站自建网站阿里云备案通过后怎么做
  • 成都规划网站佛山网上办事大厅官网
  • AI-RAN Sionna 5G NR 开发者套件
  • 百度商桥怎么添加到网站山东网站
  • iis 里没有网站柯桥网站建设
  • 外汇返佣网站建设有了域名之后怎么做自己的网站
  • 模板网站配置文件域名注册 网站建设 好做吗
  • 网站开发工具安卓版泉州网站建设方案服务
  • 长沙网站建设长沙网站制作淘宝优惠券网站建设总代
  • 河北云网站建设福建联泰建设集团网站
  • 基于单片机的蓝牙可调PWM波形发生器设计
  • 网站如何生成静态页面英国网站建设
  • 网站建设人员分工wordpress菜单导航代码