nginx的使用经历
来源:互联网 发布:c语言数组删除指定元素 编辑:程序博客网 时间:2024/04/29 16:20
1.什么样的场景下使用nginx?
很多时候我们的项目都是在一台服务器部署,但是当业务量很大时候就很陷入瓶颈期,这个时候我们就会选择在多台服务器上部署。
就像我现在的项目就部署了12台服务器,主要业务是给全国各省提供一些业务能力。这个时候使用nginx就会非常好了。因为nginx就是负载均衡
是所有的业务都能均匀的分摊到每一个服务器。
2.nginx使用起来的效果。
首先我自己在两台服务器的tomcat上部署了相同的应用。ip分别是192.168.183.131和192.168.183.132。
那么nginx就可以这样配置(我这里配置的比较简单,主要是想尝试一下nginx的功能)。
这样子配置了之后,访问http://192.168.183.130:8080/admin/login.html#/page/login(这是我的项目的地址)
多次访问就会发现会在两个服务器之间进行轮询。其中有一条关于ip_hash的作用。
nginx可以根据客户端IP进行负载均衡,在upstream里设置ip_hash,就可以针对同一个C类地址段中的客户端选择同一个后端服务器,除非那个后端服务器宕了才会换一个。
这个解决多服务器的时候session共享的问题。
nginx的upstream目前支持的5种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
nginx的upstream目前支持的5种方式的分配
1、轮询(默认)
每个请求按时间顺序逐一分配到不同的后端服务器,如果后端服务器down掉,能自动剔除。
upstream backserver {
server 192.168.0.14;
server 192.168.0.15;
}
2、指定权重
指定轮询几率,weight和访问比率成正比,用于后端服务器性能不均的情况。
upstream backserver {
server 192.168.0.14 weight=10;
server 192.168.0.15 weight=10;
}
3、IP绑定 ip_hash
每个请求按访问ip的hash结果分配,这样每个访客固定访问一个后端服务器,可以解决session的问题。
upstream backserver {
ip_hash;
server 192.168.0.14:88;
server 192.168.0.15:80;
}
4、fair(第三方)
按后端服务器的响应时间来分配请求,响应时间短的优先分配。
upstream backserver {
server server1;
server server2;
fair;
}
5、url_hash(第三方)
按访问url的hash结果来分配请求,使每个url定向到同一个后端服务器,后端服务器为缓存时比较有效。
upstream backserver {
server squid1:3128;
server squid2:3128;
hash $request_uri;
hash_method crc32;
}
阅读全文
0 0
- nginx的使用经历
- Powershadow2008的使用经历
- 使用iPhone的经历
- hge的使用经历
- 使用mySQL的经历
- JNA的使用经历
- JNA的使用经历
- BCB使用的初次经历
- 我的GIT使用经历
- mini2440 uboot的使用经历
- django signals 的使用经历
- 使用Dojo的痛苦经历
- Total Commander的使用经历
- 使用cefSharp的坎坷经历
- unitils库的使用经历
- 初次使用echars的经历
- 一次Nginx+PHP+Mysql的并发测试经历
- CRtmpServer转推流到Nginx Rtmp及SRS(SimpleRtmpServer)的经历
- 控制MapReduce输出文件个数及格式
- redis集群——删除节点
- 【HDU1852】Beijing 2008
- leetcode[Find All Anagrams in a String]
- java笔记
- nginx的使用经历
- SOAPUI中文教程---调试测试用例
- 初识ubuntu 安装steam
- 机器学习中的特征选择——决策树模型预测泰坦尼克号乘客获救实例
- 文件压缩
- C#设计模式(七)适配器模式(Adapter Pattern)
- 解决Django migrate No changes detected 不能创建表
- 《权力的游戏 第七季》9大家族汇总
- redis主从集群