「五」具有缓存功能的反向代理服务
反向代理
将nginx作为反向代理后,可以根据负载均衡算法分散到多台上游服务器,这样就实现了架构上的水平扩展,让用户无感知的情况下,添加更多的服务器,来提升性能
- 缓存的使用方法则是,在需要进行缓存url 路径下,添加proxy_cache、proxy_cache_key、proxy_cache_valid。
- proxy_cache my_cache:指定缓存共享内存的命名
- proxy_cahce_key $host$uri$is_args$args:在共享内存中设置的 key 的值,这里将 host,uri 等作为 key 值
- Proxy_cache_valid 200 304 302 1d :指定的响应不返回缓存
配置文件
user root;
worker_processes 1;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
upstream web_group {
server 127.0.0.1:8081 weight=2 max_fails=2 fail_timeout=2s;
}
proxy_cache_path /home/ubuntu/nginx/logs/cache levels=1:2 keys_zone=cache_one:20m max_size=1g;
server {
listen 127.0.0.1:80;
root html/;
index index.html;
}
server {
listen 80;
# 在响应报文中添加缓存首部字段
add_header X-Cache "$upstream_cache_status from $server_addr";
location / {
proxy_pass http://web_group;
proxy_cache cache_one;
proxy_cache_valid 200 1h;
proxy_cache_valid 404 1m;
proxy_cache_valid any 5m;
}
}
server {
listen 8081;
location / {
root html/;
index index.html;
}
}
}