目录
web服务器介绍
web服务器需要哪些能力?以caddy为例
web server(用户发请求它返回网页)
代理(proxy)
缓存(cache)
日志(logging)
API网关(api gateway)
TLS终结(TLS termination)
代表
实战caddy web server
Caddy
代理
总结
web服务器介绍
web服务器需要哪些能力?以caddy为例
web server(用户发请求它返回网页)
代理(proxy)
缓存(cache)
日志(logging)
access_log:用户访问产生的日志;
记录访问时间、访问网址、ua、ip等等
error_log:错误日志
用来监控和报警,比如访问日志突然有大的波动,可能是后面的服务挂了
错误日志突然上升那就是服务有问题了
API网关(api gateway)
不同设备访问途径->配置缓存->分发
API集成,API分发,API安全控制
TLS终结(TLS termination)
可以终止https协议,内部使用其他协议 如tcp
代表
- apache(基本不用了)
- nginx
- caddy(go语言写的)
实战caddy web server
Caddy
- Go语言写的开源高性能https服务器
- 提供命令行工具、配置文件和管理API
// cmd:
vim CaddyFile
localhost
www.test1.com
respond "Hello"
// 文件路径
root * ./static
// 访问文件
file_server browse
// caddy提供自签名证书
tls internal
// 代理
// 反向代理访问www.test1.com实际访问的是 localhost:3000
reverse_proxy localhost:3000 localhost:3001 // 写2个有负载均衡的效果
// 代理场景2:www.test1.com/api1
route /api1* {
uri strip_prefix /api1
# /api1/1 -> /1
reverse_proxy localhost:3000
}
caddy简介及配置:caddy简介及配置 - 简书
代理
const express = require('express')
const app1 = express()
const app2 = express()
app1.get('/', (req, res) =>{
res.send("app1")
})
app2.get('/', (req, res) => {
res.send("app2")
})
app1.listen(3000)
app2.listen(3001)
总结
- web服务器有哪些的能力?
- 静态资源托管
- 给用户返回数据
- 作为一个负载均衡器
- 反向代理
- 日志
- Caddy配置起来方便吗?
目前使用的配置最方便的
tls 自签名证书
配置文件用起来方便
内部动态改配置