负载均衡
akf 扩展立方体
支持的反向代理
缓存
upstream & server
加权 round-robin 负载均衡算法
对上游服务使用 keepalive
hash 负载均衡
一致性 hash
hash 的问题
使用缓存时, 所有缓存会失效
一致性 hash: 扩容前
一致性 hash: 扩容后
一致性 hash 模块
还是 upstream_hash 模块
最少连接算法
upstream_least_conn 模块
使用共享内存, 让负载均衡策略在所有 worker 间生效
upstream_zone 模块
upstream 模块间的顺序
反向代理
proxy 模块
代理 http
proxy 指令
一些修改 请求 的指令
- proxy_method
- proxy_http_version
- proxy_set_header
- proxy_pass_request_header
- proxy_pass_request_body
- proxy_set_body
临时文件路径
与上游服务器建立连接
tcp keepalive
http keepalive
修改 source ip
- 应该是有多个网卡, 这里可以指定一个?
接收上游 http 响应头部
禁用上游响应头部功能
上游返回失败时的处理办法
对上游使用 ssl
双向认证
对下游使用证书
验证下游证书
对上游使用证书
验证上游证书
ssl 模块的变量
缓存
浏览器缓存
etag
if-none-match
if-modified-since
expires 指令
not_modified 过滤模块
配置 nginx 使用缓存
缓存什么样的响应
- upstream_cache_status
缓存流程
- x-accel-expires
set-cookie
接收上游响应
合并回源请求
使用 stale 陈旧缓存
立刻使缓存失效
uwsgi fastcgi scgi
memcached 反向代理
websocket 反向代理
协议升级
缺点
分片
http2
grpc 反向代理
stream 反向代理
7个阶段
ssl
变量
系统变量
proxy protocol
- 利用该协议, 在 tcp 中附加真实 ip 信息
流程
realip 模块
stream 中 ssl
变量
ssl_preread 模块
- alpn
udp 反向代理
透传 ip 地址
dsr 方案