您的位置:首页 > 运维架构 > Nginx

linux下nginx负载均衡部署

2014-10-31 15:42 162 查看
nginx负载均衡部署
Nginx("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。 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 密码: nq7r

2 上传文件到服务器

可以使用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 端口没被其他程序占用,
/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 轮询(默认)

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

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



11.2 weight

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

ps:以上轮询负载均衡策略,我个人认为对于动态网站应用,这几乎就是形同摆设,没有人会采用。但一种情况例外:服务器端的session采用共享机制,如存储在数据库或者memcached内存里等。

11.3 ip_hash

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

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

这种方式是根据服务器端的动态响应,对每一个请求进行分配。 这种方式能够自动根据当前的后端实际负载来优化。

11.5 url_hash(第三方)

这种方式与IP的哈希方式类似,是对客户机请求的URL进行哈希操作,这样的方式有一个明显的好处是,能够便于内容缓存的实现,对于经常性的资源访问,采用这样的方式会获得非常好的质量。它目前不是nginx自带的功能,需要安装补丁方可使用。本指令的详细说明和安装见:(文章后面有附带详细安装实例)

http://wiki.nginx.org/HttpUpstreamRequestHashModule
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: