搭建一个具备缓存功能的反向代理服务
假设有一个上游服务localhost:8080
,不对公网提供服务,选择用nginx代理该如何做?
upstream local {
server 127.0.0.1:8080
}
server {
server_name test.com;
listen 80;
location / {
# 传给客户端真实的服务端地址
proxy_set_header Host $host;
# 传给upstream服务器 客户端真实ip地址
proxy_set_header X-Real-IP $remote_addr;
proxy_pass http://local;
}
}
上游服务提供动态服务,而为了加快静态链接访问速度,将剩余资源留给动态服务。使用静态资源缓存nginx将使用到模块http_proxy
http{
proxy_cache_path /data/nginx/cache levels=1:2 keys_zone=my_cache:10m;
server {
location / {
proxy_cache my_cache;
proxy_cache_key $scheme$proxy_host$uri$is_args$args;
# 返回码以及缓存时间
proxy_cache_valid 200 302 10m;
}
}
}