使用Nginx实现负载均衡
使用Nginx实现负载均衡
一、nginx简介
nginx是一个高性能的HTTP服务器和反向代理服务器。它起初是俄罗斯人Igor Sysoev开发的,至今支撑者俄罗斯的很多大型的网站。
二、nginx支持的三种负载均衡策略
轮询:将请求依次轮询发给每个服务器。
最少链接:将请求发送给持有最少活动链接的服务器。
ip哈希:通过哈希函数决定请求发送给哪个服务器。
权重:服务器的权重越高,处理请求的概率越大。
三、轮询负载均衡
在nginx.conf配置文件中添加如下配置,此配置有三台服务器提供支付服务。
http {
upstream CashServers {
server CashServers1.com;
server CashServers2.com;
server CashServers3.com;
} server {
listen 80; location / {
proxy_pass http://CashServers;
}
}
}
需要注意以下几点
1.缺省配置就是轮询策略;
2.nginx负载均衡支持http和https协议,只需要修改 proxy_pass后协议即可;
3.nginx支持FastCGI, uwsgi, SCGI,memcached的负载均衡,只需将 proxy_pass改为fastcgi_pass, uwsgi_pass, scgi_pass,memcached_pass即可。
4.此策略适合服务器配置相当,无状态且短平快的服务使用。
四、最少链接负载均衡
http {
upstream CashServers {
least_conn;
server CashServers1.com;
server CashServers2.com;
server CashServers3.com;
} server {
listen 80; location / {
proxy_pass http://CashServers;
}
}
}
需要注意以下几点
1.最少链接负载均衡通过least_conn指令定义;
2.此负载均衡策略适合请求处理时间长短不一造成服务器过载的情况;
五、ip哈希负载均衡
http {
upstream CashServers {
ip_hash;
server CashServers1.com;
server CashServers2.com;
server CashServers3.com;
} server {
listen 80; location / {
proxy_pass http://CashServers;
}
}
}
需要注意以下几点
1.ip哈希负载均衡使用ip_hash指令定义;
2.nginx使用请求客户端的ip地址进行哈希计算,确保使用同一个服务器响应请求;
3.此策略适合有状态服务,比如session;
六、权重负载均衡
http {
upstream CashServers {
server CashServers1.com weight=3;
server CashServers2.com weight=2;
server CashServers3.com weight=1;
} server {
listen 80;
location / {
proxy_pass http://CashServers;
}
}
}
需要注意以下几点
1. 权重负载均衡需要使用weight指令定义;
2. 权重越高分配到需要处理的请求越多;
3.此策略可以与最少链接负载和ip哈希策略结合使用;
4.此策略比较适合服务器的硬件配置差别比较大的情况;
七、健康检测
nginx内置了针对服务器的健康检测机制,如果特定服务器请求失败,则nginx即可进行标记待下次就不会请求分配给它。max_fails定义失败指定次数后进行标记服务器不可用。
使用Nginx实现负载均衡的更多相关文章
- nginx+tomcat负载均衡
最近练习nginx+tomcat负载均衡.根据一些资料整理了大体思路,最终实现了1个nginx+2个tomcat负载均衡. 安装JDK 1>进入安装目录,给所有用户添加可执行的权限 #chmod ...
- nginx作为负载均衡服务器——测试
i. 需求 nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至 tomcat服务器. nginx负载均衡服务器:192.168.101.3 tomcat1服 ...
- windows配置nginx实现负载均衡集群
windows配置nginx实现负载均衡集群2014-08-20 09:44:40 来源:www.abcde.cn 评论:0 点击:617 网上大部分关于nginx负载均衡集群的教程都是lin ...
- 使用nginx做负载均衡的session共享问题
查了一些资料,看了一些别人写的文档,总结如下,实现nginx session的共享PHP服务器有多台,用nginx做负载均衡,这样同一个IP访问同一个页面会被分配到不同的服务器上,如果session不 ...
- 【Nginx】配置Nginx的负载均衡
参考的优秀文章 tomcat配置文件server.xml详解 AJP协议总结与分析 Using nginx as HTTP load balancer 在本机运行2个Tomcat 现需要运行两个Tom ...
- Nginx的负载均衡 - 整体架构
Nginx的负载均衡 - 整体架构 Nginx版本:1.9.1 我的博客:http://blog.csdn.net/zhangskd Nginx目前提供的负载均衡模块: ngx_http_upstre ...
- Nginx作为负载均衡服务器(Windows环境)
一个最简单的负载均衡测试,不涉及到session复制,只是将请求分配到不同的服务器上去而已. 1.创建一个简单的web应用.只有一个index.jsp页面,,内容如下. <%@ page lan ...
- [转载] nginx的负载均衡
原文:http://www.srhang.me/blog/2014/08/27/nginx-loabbalance/ Nginx负载均衡 一.特点 1.1 应用情况 Nginx做为一个强大的Web服务 ...
- Nginx之负载均衡
转自:http://www.360doc.com/content/13/1114/12/7694408_329125489.shtml 注,大家可以看到,由于我们网站是发展初期,nginx只代理了后端 ...
随机推荐
- mssql
1.打开php.ini,将 ;extension=php_mssql.dll前面的分号(;)去掉,然后重启 Apache. 如果不行的话,进行第2步: 2.检查一下你的php安装目录下的ext下面有没 ...
- php获取数据库中数据,转成json数据
<?php //需要执行的SQL语句 //单条 $sql="select * from xinwen"; //多条数据 //$sql="select id,name ...
- Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} failed due to the following error: 80070005.
Retrieving the COM class factory for component with CLSID {00024500-0000-0000-C000-000000000046} fai ...
- 有趣的代码: fixTypeof
typeof 可以匹配对象的类型,但是他的能力很弱,比如 typeof new String('123')会显示的object这是我们不想看到的结果很久以前JQ的作者通过Object.prototyp ...
- h5整理--详解css的相对定位和绝对定位
浏览器默认状态下position的属性默认值是static也就是没有定位,元素出现在正常的文档流中,这个时候给元素设置的left,right.bottom.top这些偏移属性是没有效果的,不会生效: ...
- WPF Image控件的Source属性是一个ImageSource对象
1.固定的图片路径是可以的,如下: <Image Source="../test.png" /> 2.绑定的Path是一个String类型的图片路径,而实际情况它需要的 ...
- VBA学习之关于数据透视表的应用
工作中很多地方需要同时处理多个数据表,而且用数据透视表进行排版,排序,计算字段,一个一个的做非常累,这里给出批量处理的方法. 学习VBA之前最好懂一点点VB的基础知识,因为里面的很多语法问题都是由VB ...
- [转]Snappy压缩库安装和使用之一
Snappy压缩库安装和使用之一 原文地址:http://blog.csdn.net/luo6620378xu/article/details/8521223 近日需要在毕业设计中引入一个压缩库,要求 ...
- 关于C++的递归调用(n的阶乘为例)
C++,是入门编程界的一门初期的语言.今天我们浅谈一下有关C++的递归调用. 在没有继承,多态,封装之前,C++几乎看成是C语言,除了一些简单的输出和头文件. 具体代码实现如下: #include&l ...
- C#实现:给定任意要给字符串,输出所有可能的回文的子字符串集合。
class Program { static void Main(string[] args) { string testStr = "sdfadfdsfadfdsfsdf"; i ...