nginx重新整理——————反向代理[五]
前言
简单整理一下反向代理。
正文
为什么要反向代理呢? 其实这个问题也是相对来说比较好理解的。
-
一个就是解耦,为什么这么说呢,就是将原本应用的一部分剥离出来,比如说限制流量,如果在程序中写那么相比会增加程序的复杂度。
-
水平扩展,这个没什么好说的吧,有了水平扩展那么整体性能就得到了一个大的提高。
那么就来弄一下吧。
先把上一节的服务改成一个内网服务,也就是假设有另外一个服务。
那么这个现在只有内网可以访问。
然后设置代理:
upstream local{
server 127.0.0.1:8080;
}
server {
server_name www.axm.com;
listen 80;
location /{
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://local;
}
}
这个proxy_set_header 一般都要加上,不然拿到的就是本地地址了。
那么如何设置代理缓存呢?
proxy_cache_path /tmp/nginxcache levels=1:2 keys_zone=my_cache:10m max_size=10g inactive=60m use_temp_path=off;
然后再缓存的地方这样使用
proxy_cache my_cache;
proxy_cache_key $host$uri$is_args$args;
proxy_cache_valid 200 304 302 1d;
然后可以去看一下这个缓存的内容哈:
这个就是key:
值得注意的是,这里不是浏览器的缓存哈,而是nginx 的缓存。
现在关掉静态代理服务看下是否还能访问不。
试了一下还是可以访问:
然后手动删除一下缓存。
这样就不能访问了:
结
下一节介绍一下log的监控。