nginx负载均衡 页面缓存

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252709.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Date扩展 正则匹配

<script>Date.prototype.formatfunction(){var dthis;//严格匹配 yyyy-mm-dd hh-mm-ssvar reg1/yyyy-mm-dd hh-m-s/;//匹配 yyyy*mm*dd hh*mm*ss *为任意一个除\r\n之外的字符 中间为任意多个空格var reg2/y{4}.m{2}.dd\shh.mm.ss/;reg1.test(arguments[0]);reg2.test(a…

终于有人把EMC基础知识总结如此清晰

传导与辐射 电磁干扰(Electromagnetic Interference)&#xff0c;简称EMI&#xff0c;有传导干扰和辐射干扰两种。传导干扰主要是电子设备产生的干扰信号通过导电介质或公共电源线互相产生干扰&#xff1b;辐射干扰是指电子设备产生的干扰信号通过空间耦合把干扰信号传给另一个…

填坑-十万个为什么?(13)

简介:很多概念不清或忘记&#xff0c;重新构建自己的知识体系。每天问自己1~多个问题。我是菜鸟 成为大神之路! 1. 经典面试题 for(var i0;i<3;i){ setTimeout(function() { console.log(i) }, 10);}打印结果&#xff1f;分析&#xff1f; for(var i 0; i < 10; i) {con…

WordPress分类列表函数:wp_list_categories用法及参数详解举例

http://www.511yj.com/wordpress-wp-categories.html 注意&#xff1a; 1、 wp_list_categories() 和 list_cats() 以及 wp_list_cats() 的使用类似&#xff0c;但是后面 2 个已经弃用。 2、如果你希望不格式化输出分类&#xff0c;请使用 get_categories() 3、因为 WordPress …

DVP,LVDS和MIPI

Mipi 接口 和 LVDS 接口区别 主要区别&#xff1a; 1. LVDS接口只用于传输视频数据&#xff0c;MIPI DSI不仅能够传输视频数据&#xff0c;还能传输控制指令&#xff1b; 2. LVDS接口主要是将RGB TTL信号按照SPWG/JEIDA格式转换成LVDS信号进行传输&#xff0c;MIPI DSI接口则…

安装Cornerstone3.1注意点

mac在升级之后就不能社会做任何来源安装,需要在终端运行 sudo spctl --master-disable//添加任何来源的,再次安装就可以的转载于:https://www.cnblogs.com/chengenyan/p/6835970.html

2019我的目标

1 能考上自己理想的高中 2 至少学会一直种语言&#xff08;英语&#xff09; 3 坚持记录每一天&#xff0c;每个星期至少写一遍文章 4 坚持到底 转载于:https://www.cnblogs.com/ta20/p/10203974.html

nodejs开发——require与exports的使用

nodejs开发——require与exports的使用 另一片文章总结&#xff1a;http://www.cnblogs.com/hfultrastrong/p/8036682.html require require函数用于在当前模块中加载和使用别的模块&#xff0c;传入一个模块名&#xff0c;返回一个模块导出对象。模块名可使用相对路径&#x…

jvm 内存溢出问题排查方法

如果你做TCP通讯或者map集合操作&#xff0c;并发处理等功能时&#xff0c;很容易出现 Java 内存溢出的问题。本篇文章&#xff0c;带领大家深入jvm&#xff0c;分析并找出jvm内存溢出的代码。 jvm中除了程序计数器&#xff0c;其他的区域都有可能会发生内存溢出 内存溢出是什么…

一个go1.9.x 编译器内联引起的栈信息错乱的问题分析

2019独角兽企业重金招聘Python工程师标准>>> 背景是在写个日志库&#xff0c;日志库有个很重要的功能就是要打印出调用栈&#xff0c;知道具体是哪个文件&#xff0c;哪个函数调用的Info 等。 然后在测试中发现了一种写法&#xff0c;我自己本机测试一直ok&#xff…

CMOS Sensor的调试经验分享

转自&#xff1a;http://bbs.52rd.com/forum.php?modviewthread&tid276351 CMOS Sensor的调试经验分享      我这里要介绍的就是CMOS摄像头的一些调试经验。   首先&#xff0c;要认识CMOS摄像头的结构。我们通常拿到的是集成封装好的模组&#xff0c;一般由三个部…

Learn Python—表达式、数据类型、流程控制

表达式 在 Python 中&#xff0c;2 2 称为“表达式”&#xff0c;它是语言中最基本的编程结构。表达式包含“值”&#xff08;例如2&#xff09;和“操作符”&#xff08;例如&#xff09;&#xff0c;并且总是可以求值&#xff08;也就是归约&#xff09;为单个值。这意味着在…

监控工具之zabbix server3.4 部署配置

[rootlocalhost src]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [rootlocalhost src]# pwd /usr/local/src 配置zabbix的yum源 [rootlocalhost src]# rpm -ivh http://repo.zabbix.com/zabbix/3.4/rhel/7/x86_64/zabbix-release-3.4-2.el7.noarch.rpm …

CMOS Sensor基础知识

CMOS Sensor基础知识 曝光时间以行长为单位&#xff1b; PCLK以Hz为单位&#xff1b; 行长以周期数为单位&#xff0c;帧长以行长数为单位&#xff1b;其中周期数就是频率 T 周期以ms为单位&#xff1b; f 频率以Hz为单位&#xff1b; f 1 / T&#xff1b; Vsync Dummy Line…

java获取mp3的时长和播放mp3文件

所需包为jaudiotagger-2.2.6-SNAPSHOT.jar和jl1.0.1.jar。 import java.io.BufferedInputStream; import java.io.File; import java.io.FileInputStream;import org.jaudiotagger.audio.AudioFileIO; import org.jaudiotagger.audio.mp3.MP3AudioHeader; import org.jaudiotag…

Redis 优缺点

REmote DIctionary Server(Redis) 是一个由Salvatore Sanfilippo写的key-value存储系统。 Redis是一个开源的使用ANSI C语言编写、遵守BSD协议、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库&#xff0c;并提供多种语言的API。 Redis 与其他 key - value 缓存产品…

Python并发编程之concurrent.futures

2019独角兽企业重金招聘Python工程师标准>>> concurrent.futures模块提供了一个异步执行callables的高级接口。 可以使用ThreadPoolExecutor和ProcessPoolExecutor。 两者都继承了相同的接口&#xff0c;该接口由抽象的Executor类定义。 一个抽象类&#xff0c;提供…

1.3链表

链表的物理存储结构是用一组地址任意的存储单元存储数据的。不像顺序表占据连续的一段内存空间&#xff0c;而是将存储单元分散在内存的任意地址上。 链表结构中&#xff0c;每个数据元素记录都存放到链表的一个节点&#xff08;node&#xff09;中&#xff0c;而每个节点之间由…

移植opencv3.20到3556AV100

1.移植环境&#xff1a; Ubuntu14.04 arm-hisiv200-linux-opencv3.20 下载地址 2.移植步骤&#xff1a; 1&#xff09;安装cmake-gui 2&#xff09;新建一个opencv目录存放opencv-3.2.0.zip&#xff0c;并解压 击Browse Source选择~/hisi/opencv/opencv-3.2.0 点击Brow…

ngnix 详解

4 Nginx的rpm软件包安装 4.1 安装包在位置 D:\讲课内容--\新巴巴运动网\nginx高并发解决\nginx安装包 4.2 此种安装方式不用安装gcc等编译工具 4.3 安装命令如下 rpm –ivh nginx 5 配置虚拟主机 5.1 什么是虚拟主机 虚拟主机是一种特殊的软硬件技术&#xff0c;它可以将网络上…