潇湘夜雨移动版

主页 > 软件与服务 >

nginx方向代理+缓存

简介:反向代理时nginx服务器的一大特色。它可以实现将前端客户端的请求代理到后端,如果后端有多台服务器还可以实现负载均衡。在实际生产环境中为了减小前端代理的压力可以启用nginx的缓存功能,客户端访问到缓存中的内容时直接响应,而不用再向后端请求。
配置示例如下:
1.建立后端服务组
 
 upstream bakend{                             #建立轮询池
        server  115.236.20.115;
        server 121.40.31.49;
        server   120.27.125.54;
        server   120.27.125.54:8080 backup;  # 备用服务器,前面的服务挂掉时启用。
 
        }
2.配置缓存文件的路径及相关参数
 
  proxy_cache_path /usr/local/nginx/cache/first levels=1:2 keys_zone=first:20m max_size=1G;
注意:如果没有cache/first目录,必须手动创建,否则会出错。
 
3.开启反向代理和缓存功能
 
  server {
        listen       80;
        server_name  node1.test.com;
        add_header x-cache "$upstream_cache_status from $server_addr"; #传递缓存服务状态参数
        location / {
            root /var/www/html;
         autoindex on;
           index index.php  index.html1 index.htm;
        proxy_pass http://bakend; #反向代理池
         proxy_set_header X-Real-IP $remote_addr; #传递前端访客的真实ip
        proxy_cache     first; #开启代理缓存功能
        proxy_cache_valid 200 10m; #设置状态码为200的响应的缓存时间为10分钟
}
 
4.客户端访问测试
为了检测负载均衡和缓存的效果,建议将后端web服务的首页设置成不相同的内容。
刚开始访问刷新页面会在服务器组中轮询,过一段时间就会固定在缓存服务器中,在浏览器查看请求报头:
Accept-Ranges:bytes
Connection:keep-alive
Content-Length:9226
Content-Type:image/jpeg
Date:Mon, 12 Sep 2016 05:37:33 GMT
ETag:"57d00124-240a"
Last-Modified:Wed, 07 Sep 2016 11:59:32 GMT
Server:nginx/1.10.1
x-cache:HIT from 172.18.109.233 #显示命中缓存内容
开启缓存后缓存目录下就会存放相关文件
例如:[root@node1 first]# ls -lh 1/2e/
总用量 12K
-rw------- 1 nginx nginx 12K 9月  12 14:36 9043cbf7848d9493cfabd5073c17a2e1
 
 
(责任编辑:liangzh)