nginx的upstream目前支持4种方式的分配

1、轮询(默认)

每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。

2、weight 
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。 
例如: 
upstream bakend { 
server 192.168.0.14 weight=10; 
server 192.168.0.15 weight=10; 
}

2、ip_hash 
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。 
例如: 
upstream bakend { 
ip_hash; 
server 192.168.0.14:88; 
server 192.168.0.15:80; 
}

3、fair(第三方) 
按后端服务器的响应时间来分配请求,响应时间短的优先分配。 
upstream backend { 
server server1; 
server server2; 
fair; 
}

4、url_hash(第三方)

按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。

例:在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法

upstream backend { 
server squid1:3128; 
server squid2:3128; 
hash $request_uri; 
hash_method crc32; 
}

tips:

upstream bakend{#定义负载均衡设备的Ip及设备状态 
ip_hash; 
server 127.0.0.1:9090 down; 
server 127.0.0.1:8080 weight=2; 
server 127.0.0.1:6060; 
server 127.0.0.1:7070 backup; 

在需要使用负载均衡的server中增加 
proxy_pass ;

每个设备的状态设置为: 
1.down 表示单前的server暂时不参与负载 
2.weight 默认为1.weight越大,负载的权重就越大。 
3.max_fails :允许请求失败的次数默认为1.当超过最大次数时,返回proxy_next_upstream 模块定义的错误 
4.fail_timeout:max_fails次失败后,暂停的时间。 
5.backup: 其它所有的非backup机器down或者忙的时候,请求backup机器。所以这台机器压力会最轻。

nginx支持同时设置多组的负载均衡,用来给不用的server来使用。

client_body_in_file_only 设置为On 可以讲client post过来的数据记录到文件中用来做debug 
client_body_temp_path 设置记录文件的目录 可以设置最多3层目录

location 对URL进行匹配.可以进行重定向或者进行新的代理 负载均衡

如何配置proxy_cache模块

在nginx.conf文件中添加如下代码:

http{  ......  proxy_cache_path/data/nginx/tmp-test levels=1:2 keys_zone=tmp-test:100m inactive=7d max_size=1000g;
}

代码说明:

proxy_cache_path 缓存文件路径

levels 设置缓存文件目录层次;levels=1:2 表示两级目录

keys_zone 设置缓存名字和共享内存大小

inactive 在指定时间内没人访问则被删除

max_size 最大缓存空间,如果缓存空间满,默认覆盖掉缓存时间最长的资源。

当配置好之后,重启nginx,如果不报错,则配置的proxy_cache会生效

查看  proxy_cache_path /data/nginx/目录,
会发现生成了tmp-test文件夹。

如何使用proxy_cache

在你对应的nginx vhost server配置文件中添加如下代码:
location /tmp-test/ {  proxy_cache tmp-test;  proxy_cache_valid  200 206 304 301 302 10d;  proxy_cache_key $uri;  proxy_set_header Host $host:$server_port;  proxy_set_header X-Real-IP $remote_addr;  proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;  proxy_passhttp://127.0.0.1:8081/media_store.php/tmp-test/;
}

配置项介绍:
Proxy_cache tmp-test 使用名为tmp-test的对应缓存配置

proxy_cache_valid  200 206 304 301 302 10d; 对httpcode为200…的缓存10天

proxy_cache_key $uri  定义缓存唯一key,通过唯一key来进行hash存取

proxy_set_header  自定义http header头,用于发送给后端真实服务器。

proxy_pass  指代理后转发的路径,注意是否需要最后的/
到这里,最基本的proxy_cache功能就配置成功了。当uri成功匹配到该location,则proxy_cache就会生效。

转载于:https://www.cnblogs.com/vania/p/8028937.html

nginx负载均衡 页面缓存相关推荐

  1. Nginx 负载均衡和缓存服务实战

    转自:泥瓦匠BYSocket sf.gg/a/1190000014893012 基础篇 一.环境 二.Nginx是什么? 三.我们为什么选择Nginx? 三.安装与目录 四.基本配置 五.模块 场景实 ...

  2. [ 总结 ] nginx 负载均衡 及 缓存

    操作系统:centos6.4 x64 前端使用nginx做反向代理,后端服务器为:apache + php + mysql 1. nginx负载均衡. nginx编译安装(编译安装前面的文章已经写过) ...

  3. Nginx特性验证-反向代理/负载均衡/页面缓存/URL重定向

    原文发表于cu:2016-08-25 参考文档: Nginx 反向代理.负载均衡.页面缓存.URL重写等:http://freeloda.blog.51cto.com/2033581/1288553 ...

  4. Nginx配之负载均衡、缓存、黑名单和灰度发布

    一.Nginx安装(基于CentOS 6.5) 1.yum命令安装 yum install nginx –y (若不能安装,执行命令yum install epel-release) 2. 启动.停止 ...

  5. tomcat服务部署与nginx负载均衡

    中间件产品介绍 ​ 目前来说IBM的WebSphere. Oracle的Weblogic占据了市场上Java语言Web站点的部分份额.该两种软件由于无与伦比的性能及可靠性等优势被广泛应用于大型互联网公 ...

  6. Nginx负载均衡配置策略

    转自:http://www.freeoa.net/osuport/cluster/nginx-load-equilibrium-configuration-strategy_1652.html Ngi ...

  7. (更新时间)2021年6月3日 商城高并发秒杀系统(.NET Core版) 26-性能优化-nginx负载均衡优化

    一.关于Nginx的负载均衡 在服务器集群中,Nginx起到一个代理服务器的角色(即反向代理),为了避免单独一个服务器压力过大,将来自用户的请求转发给不同的服务器. 二.Nginx负载均衡策略 负载均 ...

  8. Nginx负载均衡,服务器宕机问题

    如果Nginx没有仅仅只能代理一台服务器的话,那它也不可能像今天这么火,Nginx可以配置代理多台服务器,当一台服务器宕机之后,仍能保持系统可用.具体配置过程如下: 1. 在http节点下,添加ups ...

  9. Nginx——Nginx负载均衡

    目录 1.负载均衡概述 2.负载均衡的原理及处理流程 3.负载均衡的作用 4.负载均衡常用的处理方式 4.1.方式1:用户手动选择 4.2.方式2:DNS轮询方式 4.3.四/七层负载均衡 5.Ngi ...

最新文章

  1. python lambda map reduce_python:lambda、filter、map、reduce
  2. pandas读取文件
  3. 徐玉玉案宣判了,反思大数据能够做些什么!
  4. 路易斯安那州立大学计算机科学,西北路易斯安那州立大学
  5. avalon.js实践 svg地图配置工具
  6. 入手腾龙SP AF90mm MACRO
  7. LeetCode 1561. 你可以获得的最大硬币数目
  8. ubuntu 编译安装nginx php mysql_ubuntu下安装nginx php mysql
  9. 8个数据清洗Python代码,复制可用,最长11行 | 资源
  10. 计算机右键管理是什么软件,右键管理工具打不开怎么办【图文】
  11. 能连蓝牙键盘吗_300多的小键盘,颜值很能打,GANSS ALT71蓝牙双模机械键盘很香...
  12. 【Android】自定义倒计时弹框(Handler/Timer/RxJava/持续更新)
  13. Log4j发送日志到服务器上
  14. JQuery读书笔记---很全面的教程
  15. OpenCV-Python快速入门(四):色彩空间
  16. 微信公众平台开发测试账号配置URL失败的问题
  17. 浅淡数据结构时间复杂度和空间复杂度
  18. SSD6 exercise1 解题思路
  19. 暗影精灵3安装无线网卡驱动(ubuntu16.04)
  20. 墨刀使用入门学习笔记1

热门文章

  1. Linux查看和剔除当前登录用户
  2. 八、梯度下降法和拟牛顿法
  3. 图像分类数据库_图像分类器-使用僧侣库对房屋房间类型进行分类
  4. 生成高分辨率pdf_用于高分辨率图像合成的生成变分自编码器
  5. ubuntu下编译pjsip
  6. sublime txt常用插件推荐
  7. easyexcel和poi对比_POI 和 EasyExcel
  8. jedis使用_Redis --Java客户端 Jedis
  9. java get 空指针_Java 中空指针处理方法
  10. CAT arguments dimensions are not consistent.CAT参数的维度不一致。