简单整理一下反向代理。
为什么要反向代理呢? 其实这个问题也是相对来说比较好理解的。
一个就是解耦,为什么这么说呢,就是将原本应用的一部分剥离出来,比如说限制流量,如果在程序中写那么相比会增加程序的复杂度。
水平扩展,这个没什么好说的吧,有了水平扩展那么整体性能就得到了一个大的提高。
那么就来弄一下吧。
先把上一节的服务改成一个内网服务,也就是假设有另外一个服务。
那么这个现在只有内网可以访问。
然后设置代理:
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的监控。