风信——语言永远都有弊端,永远表达不完一半
- 这里是whicinth后端服务源码
- 基于HTTP框架Hertz
- 配套前端戳这里
- 开发文档:Re:从零开始的golang-hertz项目实战
配置文件说明:参考
/pkg/viper/config.go
- 在
/conf
目录下创建dev.config.yaml
根据default.config.yaml
完成配置 - 修改
.env
文件RUN_ENV = DEV
- 启动项目会自动注入
.env
中的环境变量并读取dev.config.yaml
中的配置
Go >= 1.19
- git clone & cd
- go mod tidy
- make build&run
配置文件说明:参考
/pkg/viper/config.go
- 在
/conf
目录下创建prod.config.yaml
根据default.config.yaml
完成配置 - 修改
.env
文件RUN_ENV = PROD
- 启动项目会自动注入
.env
中的环境变量并读取prod.config.yaml
中的配置
Linux 生产环境
- 下载golang安装包并上传至Linux: https://studygolang.com/dl
- 安装golang1.19
rm -rf /usr/local/go && tar -C /usr/local -xzf go1.19.2.linux-amd64.tar.gz
- 设置go env
go env -w GO111MODULE=on
go env -w GOPROXY=https://goproxy.cn,direct
- 上传项目至服务器, 安装go.mod依赖
go mod tidy
- 构建二进制文件&后台启动服务
make build
make start
make stop # 找到 ./whicinth-steganography-bd 进程PID并将其kill
make restart
停止服务:make stop
上传本地项目至生产环境
更新依赖:go mod tidy
构建二进制文件:make build
启动项目:make start
使用make start
启动项目会将日志输出至项目本地根目录output
,有日志分片需求可创建cronjob每天00:00执行make restart
,服务会在60s的优雅退出时间后彻底断开长链接
- 服务启动日志:
output/start_YYYY-mm-dd.txt
- 服务运行日志:
output/run_YYYY-mm-dd.txt
系统内置了pprof帮助完成性能分析,启动服务器后访问路由/admin/pprof
查看当前项目的采样信息,注意生产环境下不要将该路由暴露给用户,建议配置Nginx将该路由return403