直到自己翻查笔记的时候才发现,原来遗漏了这部分,还自信满满地仔细翻阅,结果硬是没有~~~~
本章内容主要如标题,了解配置服务器均衡与前后分离产品的动静态资源处理问题。
目录
4、谁做的快谁来好吗?(fair,第三方,需要upstream-fair插件)
5、根据客户名字来分配给你们吧(url_hash ,第三方)
负载均衡
谈谈负载均衡,哟嚯,什么的,听起来就高大上,其实也没有这么神,相当于一个小店里面,开始的时候,因为客户少,亲事亲为是没有什么问题,等名声传开后,总是一个老板去招待客人也不够去应对吧,客人在时间内不得到招待,也会影响口碑,于是会去招聘服务员,然后将不同的客人根据不同的需求方式分给服务员去招待,这样效率就会提升上来,类似的就是这个例子
然后我们说说招待方式:(因为是举例子,会以最简单的配置写出)
1、按照先来后到的顺序(默认)
根据时间顺序来分配服务员招待客户,当然如果是不太方便的服务员存在的话,当然是不会分配给他/她,我们是会在分配的时候筛选掉这种可能
upstream test {
server localhost:8080;
server localhost:8081;
}
server {
listen 81;
server_name localhost;
location / {
proxy_pass http://test;
proxy_set_header Host $host;
}
}
2、对不起,分配的人公报私仇的方式(权重)
我对某几个服务员很不爽哦,我要给他/她们分配多点任务,忙哭他们,哟嚯,如下,基本说来10个客人,只有一个客人分配给8081号服务员,8080对不起,我忙死你
upstream test {
server localhost:8080 weight=9; //看你不爽,做多点
server localhost:8081 weight=1;
}
3、排号按照规律分配(ip_hash)
也是到了要摇号分配的时期了,这样我这个老板显得公平点哩
upstream test {
ip_hash;
server localhost:8080;
server localhost:8081;
}
tip:(对于不是无状态的程序,一般我们用这种方式避免服务器会话丢失的问题,特别是针对session保存数据的,当然,你本身是共享sessino处理的,当我没说)
4、谁做的快谁来好吗?(fair,第三方,需要upstream-fair插件)
根据响应时间分配,做得快的做多点,能者多劳吧。
upstream backend {
fair;
server localhost:8080;
server localhost:8081;
}
5、根据客户名字来分配给你们吧(url_hash ,第三方)
好吧,这个很难讲故事,正常来:
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器。 在upstream中加入hash语句,server语句中不能写入weight等其他的参数,hash_method是使用的hash算法
upstream backend {
hash $request_uri;
hash_method crc32;
server localhost:8080;
server localhost:8081;
}
动静分离
其实说白了就是将经常变动和不经常变动的文件进行分配,不是总流行说什么 网页静态化 炫炸天的名称吗?就是按照一定的规律将这些资源分开,并对静态资源做一定的缓存,这大概就折中了这个名词了。
走一个例子:
upstream test{
server localhost:8080;
server localhost:8081;
}
server {
listen 80;
server_name localhost;
location / {
root /coffeeandice/html;
index index.html;
}
# 所有静态请求都由nginx处理,存放目录为html
location ~ .(gif|jpg|jpeg|png|bmp|swf|css|js)$ {
root /coffeeandice/resource;
}
# 所有动态请求都转发给tomcat处理
location ~ .(jsp|do)$ {
proxy_pass http://test;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /coffeeandice/html;
}
}
这样我们就可以将
(1) HTML以及 其他资源 放到coffeeandice目录下
(2)tomcat只负责处理jsp和请求
例如当我们后缀为gif的时候,Nginx默认会从coffeeandice获取到当前请求的动态图文件返回,当然这里的静态文件跟Nginx是同一台服务器,我们也可以在另外一台服务器,然后通过反向代理和负载均衡配置过去就好了,只要搞清楚了最基本的流程,很多配置就很简单了。
好吧,结束。