在现代的 Web 开发中,Go Fiber 因其高效、轻量以及易于扩展的特点,成为构建 API 和 Web 应用的理想框架。而 Traefik 是一款现代化的反向代理和负载均衡器,特别适用于微服务架构,可以自动为应用配置 HTTPS。A5数据在本文中,我们将详细介绍如何在 Ubuntu 20.04 服务器上搭建 Go Fiber 应用,并通过 Traefik 配置自动化的 HTTPS 证书获取和管理。
系统需求
香港服务器www.a5idc.com硬件配置:
- CPU:Intel Xeon E5-2640 v4(8核16线程)
- 内存:16GB DDR4
- 存储:2x 960GB NVMe SSD(RAID 1)
- 网络:100M BGP带宽 + 25M CN2直连
- 操作系统:Ubuntu 20.04 x64
软件需求:
- Docker:容器化应用管理
- Docker Compose:编排工具
- Go:编程语言
- Fiber:Go 的 Web 框架
- Traefik:反向代理和自动 HTTPS 配置
- Certbot:用于生成和管理 SSL 证书
环境准备
1. 安装 Docker 和 Docker Compose
首先,确保服务器已经安装了 Docker 和 Docker Compose。通过以下命令来安装:
# 更新软件包列表
sudo apt update
# 安装 Docker
sudo apt install -y docker.io
# 启动并启用 Docker 服务
sudo systemctl start docker
sudo systemctl enable docker
# 安装 Docker Compose
sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)–$(uname -m)" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
检查 Docker 和 Docker Compose 安装情况:
docker –version
docker-compose –version
2. 安装 Go
Go Fiber 是基于 Go 的 Web 框架,因此需要安装 Go 环境。可以通过以下步骤安装 Go:
# 安装 Go
sudo apt update
sudo apt install -y golang-go
# 检查 Go 版本
go version
3. 安装 Traefik
Traefik 将作为反向代理,管理 HTTPS 配置。通过 Docker Compose 部署 Traefik:
# 创建 traefik.yml 配置文件
sudo nano /etc/traefik/traefik.yml
配置文件内容如下:
# traefik.yml 配置文件
api:
insecure: true
dashboard: true
entryPoints:
web:
address: ":80"
web-secure:
address: ":443"
providers:
docker: {}
certificatesResolvers:
http:
acme:
email: your–email@example.com
storage: acme.json
httpChallenge:
entryPoint: web
4. 配置防火墙
如果你的服务器启用了防火墙,确保开放 HTTP 和 HTTPS 端口:
sudo ufw allow 80,443/tcp
sudo ufw reload
Go Fiber 应用开发与 Docker 部署
1. 创建 Go 应用
创建一个新的 Go 项目并编写 Fiber 应用:
mkdir go-fiber-app
cd go-fiber-app
go mod init go-fiber-app
安装 Fiber 库:
go get github.com/gofiber/fiber/v2
然后在 main.go 文件中编写应用:
package main
import "github.com/gofiber/fiber/v2"
func main() {
app := fiber.New()
app.Get("/", func(c *fiber.Ctx) error {
return c.SendString("Hello, Go Fiber with Traefik!")
})
app.Listen(":3000")
}
2. 创建 Dockerfile
为 Go 应用创建 Dockerfile:
# 使用 Go 官方镜像
FROM golang:1.16-alpine
# 设置工作目录
WORKDIR /app
# 复制 Go 模块和源代码
COPY go.mod go.sum ./
RUN go mod tidy
# 复制整个源代码
COPY . .
# 构建应用
RUN go build -o app .
# 暴露端口
EXPOSE 3000
# 运行应用
CMD ["./app"]
3. 创建 Docker Compose 文件
在项目根目录下创建 docker-compose.yml 文件:
version: '3.7'
services:
traefik:
image: traefik:v2.5
command:
– "–api.insecure=true"
– "–entryPoints.web.address=:80"
– "–entryPoints.web-secure.address=:443"
– "–providers.docker=true"
– "–certificatesResolvers.http.acme.email=your-email@example.com"
– "–certificatesResolvers.http.acme.storage=acme.json"
ports:
– "80:80"
– "443:443"
volumes:
– "/var/run/docker.sock:/var/run/docker.sock"
– "./acme.json:/acme.json"
restart: always
go-fiber-app:
build: .
labels:
– "traefik.enable=true"
– "traefik.http.routers.go-fiber-app.rule=Host(`your-domain.com`)"
– "traefik.http.services.go-fiber-app.loadbalancer.server.port=3000"
– "traefik.http.routers.go-fiber-app.entrypoints=web-secure"
– "traefik.http.routers.go-fiber-app.tls=true"
– "traefik.http.routers.go-fiber-app.tls.certresolver=http"
depends_on:
– traefik
restart: always
4. 启动应用和 Traefik
使用 Docker Compose 启动 Go 应用和 Traefik:
docker-compose up –build -d
此命令将自动构建并启动容器,Traefik 会为 Go 应用自动配置 HTTPS。
5. 验证 HTTPS 配置
访问 https://your-domain.com,Traefik 将自动通过 Let’s Encrypt 获取 SSL 证书。如果一切配置正确,你应该能够通过 HTTPS 安全地访问 Go Fiber 应用。
评测
以下是对本次部署方案的一些评测,涵盖性能、易用性和安全性等方面。
| 服务器配置 | Ubuntu 20.04, 16GB 内存, 100M BGP带宽 |
| 应用架构 | Go Fiber + Traefik |
| HTTPS 自动化 | 通过 Traefik 与 Let’s Encrypt |
| 部署难度 | 中等,主要涉及 Docker 和 Traefik 配置 |
| 性能评估 | Go Fiber 性能优越,适合高并发应用 |
| 安全性 | 使用 Traefik 自动获取 HTTPS,提升了安全性 |
| 扩展性 | 容器化部署,支持水平扩展 |
总结
A5数据在本文中介绍了如何在 Ubuntu 20.04 上搭建 Go Fiber 应用,并使用 Traefik 实现自动 HTTPS 配置。通过 Docker 和 Docker Compose 进行容器化部署,不仅实现了高效、安全的 Web 应用架构,还通过自动化 HTTPS 证书配置大大简化了 SSL 管理。使用这种方法可以轻松地搭建高性能、安全的 Web 应用,适用于各种场景,尤其是需要高并发和稳定性的生产环境。
网硕互联帮助中心


评论前必须登录!
注册