简介:反向代理时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) |