本文主要介绍如何基于 Docker 生成容器化应用以及配置 Nginx 来实现 Web 服务的负载均衡,包含以下内容: Go 简易 Web 程序(hello world) 通过 Dockerfile 生成镜像 Nginx 配置 Docker Compose 多容器启动 Go Web 程序 本次配置使用 Go Web 程序作为后端服务,其作用是接收请求并返回“hello-world”,代码如下: // main.go package main import ( "log" "net/http" "os" ) func main() { logFile, err := os.OpenFile("/var/log/app.log",...
Four days ago, I got a requirement to build an academic website for yunzila~. This reminds me of my previous blog experience. Since my blog is built with Hugo, I started to find an academic theme which is designed for Hugo. Here is a link to Hugo themes, and then I find the Academic theme developed by gcushen which meets my needs.
从网络上下载文件是开发过程中常用的需求,常规流程是:(1)发送请求;(2)接收响应并读取响应体内容;(3)保存到本地文件。本文包含的两个例子分别来自于参考 [1] 和参考 [2],在此基础上做了少量的修改。
在 Web 开发中,常常需要对请求信息进行记录,形成日志以便于后期评估应用的性能。请求信息通常包含客户端地址、请求的 URL、请求时间及请求执行时间。在程序中,可以以同步或异步的方式完成这一需求。同步方式是指请求信息写入日志文件后才返回数据给客户端,异步方式则是在返回数据之前以新线程或进程完成对请求信息的记录。开源的日志包有:
- Zap:出自 Uber 团队,以高性能著称;
- Zerolog:以易用性著称,支持 7 种日志级别;
- Logrus:兼容标准日志包格式,也是本人常用的日志包;
- apex/log:受 Logrus 启发,简化操作后的 Logrus;
- Log15:日志可读性强;
5 个日志包的详细介绍可以看《5 种结构化 Go 日志包对比分析》这篇文章。