nginx负载均衡部署

Nginx("engine x") 是一个高性能的 HTTP 和 反向代理 server,也是一个 IMAP/POP3/SMTP 代理server。

Nginx 是由 IgorSysoev 为俄罗斯訪问量第二的 Rambler.ru网站开发的,第一个公开版本号0.1.0公布于2004年10月4日。

其将源码以类BSD许可证的形式公布,因它的稳定性、丰富的功能集、演示样例配置文件和低系统资源的消耗而闻名。2011年6月1日,nginx 1.0.4公布。

一般我们都须要先装pcre, zlib,前者为了重写rewrite,后者为了gzip压缩。

1      准备工作

openssl-1.0.1c.tar.gz

zlib-1.2.8.tar.gz

pcre-8.36.tar.gz

nginx-1.6.2.tar.gz

下载地址:http://pan.baidu.com/s/1dDhCYHj password: nq7r

2      上传文件到server

能够使用SecureFX上传

3      安装PCRE库

tar zxvf pcre-8.36.tar.gz

mv pcre-8.36.tar.gz pcre

cd pcre

./configure

make

make install

4      安装zlib库

tar zxvf zlib-1.2.8.tar.gz

mv zlib-1.2.8 zlib

cd zlib

./configure

make

make install

5      安装ssl

tar zxvf openssl-1.0.1c.tar.gz

mv openssl-1.0.1c.tar.gz openssl

cd openssl

./config

make

make install

6      安装nginx

Nginx 一般有两个版本号。各自是稳定版和开发版,您能够依据您的目的来选择这两个版本号的当中一个,以下是把 Nginx 安装到 /usr/local/nginx 文件夹下的具体步骤:

tar zxvf nginx-1.6.2.tar.gz

mv nginx-1.6.2.tar.gz nginx

cd nginx

./configure --prefix=/usr/local/nginx --with-pcre=/root/pcre--with-zlib=/root/zlib

make

make install

7      启动

确保系统的 80 port没被其它程序占用,

/usr/local/nginx/sbin/ ./nginx

检查是否启动成功:

ps –ef | grep nginx 有结果输入说明启动成功

打开浏览器訪问此机器的IP,假设浏览器出现Welcome to nginx! 则表示Nginx已经安装并执行成功。

8      查询

./nginx -h

9      重新启动

nginx –s reload

10             改动配置文件

cd /usr/local/nginx/conf

vi nginx.conf

改动配置文件例如以下:

#user  nobody;

worker_processes 4;

events {

use   epoll;

worker_connections  1024;

}

http {

include       mime.types;

default_type  application/octet-stream;

sendfile        on;

keepalive_timeout  10;

tcp_nodelay        on;

upstreammycluster{

server192.168.109.227:8082;

server192.168.109.227:8080;

}

server {

listen       80;

server_name  192.168.109.227;

access_log off;

location /{

proxy_passhttp://mycluster;

}

error_page   500 502 503 504  /50x.html;

location =/50x.html {

root   html;

}

location/nginx_status {

stub_status off;

access_logoff;

allow192.168.64.178;#璁剧疆涓哄彲璁块棶璇ョ姸鎬佷俊鎭殑ip

deny all;

}

}

}

11             Nginx负载均衡策略

11.1  轮询(默认)

对于一级后端server群,形成一个环队列的形式。对于每一个到达的请求按时间顺序顺次分配给这些后端server。在前端调度器与后端server之间採用“心跳”方式进行状态检查。假设发现后端server宕机,则将其删除。

这样的方式为默认配置,长处是简洁,但缺点是无法进行最优化调度,有可能有的请求须要耗时较久。这样会带来一定的不平衡。

11.2     weight

指定轮询几率,weight和訪问比率成正比,用于后端server性能不均的情况。

ps:以上轮询负载均衡策略。我个人觉得对于动态站点应用,这差点儿就是形同摆设。没有人会採用。

但一种情况例外:server端的session採用共享机制。如存储在数据库或者memcached内存里等。

11.3      ip_hash

这是一种非轮询式方式,对于每一个到达的请求,直接通过其请求IP进行哈希的映射。通过映射结果获得那一台后端server要处理这个请求。这样的方式有一个明显的优点是可以保证session的唯一性。

11.4      基于服务响应式fair(第三方)

这样的方式是依据server端的动态响应,对每个请求进行分配。 这样的方式可以自己主动依据当前的后端实际负载来优化。

11.5      url_hash(第三方)

这种方式与IP的哈希方式类似。是对客户机请求的URL进行哈希操作,这种方式有一个明显的优点是,可以便于内容缓存的实现。对于常常性的资源訪问,採用这种方式会获得很好的质量。它眼下不是nginx自带的功能,须要安装补丁方可使用。

本指令的具体说明和安装见:(文章后面有附带具体安装实例)

http://wiki.nginx.org/HttpUpstreamRequestHashModule

linux下nginx负载均衡部署的更多相关文章

  1. linux下nginx负载均衡搭建

    [一.Nginx能做什么] 1.http服务器.Nginx是一个http服务可以独立提供http服务.可以做网页静态服务器. 2.虚拟主机.可以实现在一台服务器虚拟出多个网站.例如个人网路使用的虚拟主 ...

  2. 19个心得 明明白白说Linux下的负载均衡

    [51CTO.com独家特稿]前言:作为一名Linux/unix系统工程师,这几年一直在涉及到对外项目,经手过许多小中型网站的架构,F5.LVS及Nginx接触的都比较多,我想一种比较通俗易懂的语气跟 ...

  3. Nginx系列篇二:linux搭建Nginx负载均衡

    建议先搭建好Nginx环境 可阅读--->Linux中搭建Nginx 1.准备好三台服务器[标配] 一.nginx负载均衡服务器:192.168.102.110,配置好Nginx 二.tomca ...

  4. Linux配置Nginx负载均衡

    nginx配置负载均衡其实很简单,一直还以为负载均衡是个很高端人士玩的 首先先了解下负载均衡,假设一个场景,如果有1000个客户同时访问你服务器时,而你只有一台服务器的Nginx,且只有一个MySQL ...

  5. 【转贴】Linux系统NGINX负载均衡404错误处理方法

    NGINX负载均衡404错误处理方法 使用NGINX 实现负载均衡,但一组服务器的数据不是实施同步,主服务器有了数据要过段时间才同步到其他服务器 upstream   image.stream.com ...

  6. Linux之nginx负载均衡

    Nginx负载均衡概述 Web服务器,直接面向用户,往往要承载大量并发请求,单台服务器难以负荷,我使用多台WEB服务器组成集群,前端使用Nginx负载均衡,将请求分散的打到我们的后端服务器集群中,实现 ...

  7. Linux centosVMware Nginx负载均衡、ssl原理、生成ssl密钥对、Nginx配置ssl

    一.Nginx负载均衡 vim /usr/local/nginx/conf/vhost/load.conf // 写入如下内容 upstream qq_com { ip_hash; 同一个用户始终保持 ...

  8. 三、netcore跨平台之 Linux配置nginx负载均衡

    前面两章讲了netcore在linux上部署以及配置nginx,并让nginx代理webapi. 这一章主要讲如何配置负载均衡,有些步骤在前两章讲的很详细了,所以这一章我就不会一个个截图了. 因为本人 ...

  9. 19个心得,明明白白说Linux下的负载均衡

    一.目前网站架构一般分成负载均衡层.web层和数据库层,我其实一般还会多加一层,即文件服务器层,因为现在随着网站的PV越来越多,文件服务器的压力也越来越大;不过随着moosefs.DRDB+Heart ...

随机推荐

  1. BZOJ 1093: [ZJOI2007]最大半连通子图( tarjan + dp )

    WA了好多次... 先tarjan缩点, 然后题意就是求DAG上的一条最长链. dp(u) = max{dp(v)} + totu, edge(u,v)存在. totu是scc(u)的结点数. 其实就 ...

  2. 我的Python成长之路---第三天---Python基础(9)---2016年1月16日(雾霾)

    一.集合 set和dict类似,也是一组key的集合,但不存储value.由于key不能重复,所以,在set中,没有重复的key. 集合和我们数学中集合的概念是一样的,也有交集,并集,差集,对称差集等 ...

  3. ZOJ 3607 Lazier Salesgirl 贪心

    这个题比上个题简单得多,也是超过W时间会睡着,睡着就再也不会卖了,顾客按时间顺序来的,但是可能有顾客同时到(同时到如果醒着就全卖了),并且每个人只买一块面包,也是求最大的W,使得卖出面包的平均价格最高 ...

  4. android网络交互之DNS优化知识整理

    android网络交互之DNS优化知识整理 之前的工作中,经常会遇到DNS解析出问题导致网络交互的操作无法正常进行. UnknownHostException 在很多的移动开发过程中,与服务端的交互的 ...

  5. 基于 JVMTI 实现 Java 线程的监控(转)

    随着多核 CPU 的日益普及,越来越多的 Java 应用程序使用多线程并行计算来充分发挥整个系统的性能.多线程的使用也给应用程序开发人员带来了巨大的挑战,不正确地使用多线程可能造成线程死锁或资源竞争, ...

  6. Sql Server 循环添加日期--(累加到一个字段中)

    SQL语句: ),) '

  7. 离散傅立叶变换与快速傅立叶变换(DFT与FFT)

    自从去年下半年接触三维重构以来,听得最多的词就是傅立叶变换,后来了解到这个变换在图像处理里面也是重点中的重点. 本身自己基于高数知识的理解是傅立叶变换是将一个函数变为一堆正余弦函数的和的变换.而图像处 ...

  8. c++实现查询天气预报

    原地址:http://blog.csdn.net/x_iya/article/details/8583015 用到的函数.API等 1.中央气象台API返回的JSON数据(http://m.weath ...

  9. gethostbyname()函数说明

    gethostbyname()函数说明——用域名或主机名获取IP地址 包含头文件    #include <netdb.h>    #include <sys/socket.h> ...

  10. poj 1990

    题目链接 借鉴cxlove大神的思路 题意:听力v,位置x,2个牛交流声音为max(v1,v2)*(x1-x2),求总的 10000^2 tle 用的树状数组做的,排序,2个,小于vi的牛的总数和距离 ...