http {
# 设置缓存文件存放的目录
# 地址为 /tmp/cahce
# 设置共享内存大小
# 缓存的 key 为 my_cache
# 分配的大小为 10m
proxy_cache_path /tmp/cache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
# 反向代理的上游服务器列表
upstream local {
server 127.0.0.1:8080;
}
server {
# 添加 ip 地址表示只有
# 本地进程才能访问这个端口
listen 127.0.0.1:8080;
location / {
alias html;
}
}
server {
listen 8081;
location / {
# 将客户端的 ip 发送给上游服务器
# 如果不进行设置的话上游服务器拿到
# 的其实是反向代理服务器的 ip
proxy_set_header X-Real-IP $remote_addr;
# 同上
proxy_set_header Host $host;
# 将刚刚开辟的共享内存
# 配置到当前请求中
proxy_cache my_cache;
# 可以理解为 CDN 存文件使用的 key
# 同样的 key 获取的缓存文件相同
proxy_cache_key $host$uri$is_args$args;
# 允许被缓存的 http status code
# 缓存时间为1天
proxy_cache_valid 200 304 302 1d;
# 将 8081 端口的请求
# 反向代理到上游的 local
proxy_pass http://local;
}
}
}