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

Nginx负载均衡+后端节点健康检查安装部署文档

2016-11-12 22:22 495 查看
1.下载
nginx下载,最新版本为1.11.5
地址:http://nginx.org/en/download.html
PCRE(nginx安装需要的依赖包)下载
地址:https://sourceforge.net/projects/pcre/files/pcre/
nginx_upstream_check_module(nginx后端节点健康检查插件)下载
地址: https://github.com/yaoweibin/nginx_upstream_check_module 2.安装
下载的三个软件包:
nginx-1.11.5.tar.gz,
pcre-8.39.tar.gz,
nginx_upstream_check_module-master.zip
放置在/home/hdfs/目录下。
2.1.先安装依赖包PCRE
cd /home/hdfs/
tar  -xzvf  pcre-8.39.tar.gz
cd pcre-8.39
./configure
make
make install
 ==============================================================================
2.2. 安装nginx
unzip nginx_upstream_check_module-master.zip #解压
tar -xzvf nginx-1.11.5.tar.gz
cd ./nginx-1.11.5/src
patch -p1 < /home/hdfs/nginx_upstream_check_module-master/check_1.11.5+.patch
#找到刚刚解压的nginx_upstream_check_module目录下和nginx版本对应的补丁,
./configure --prefix=/usr/local/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --with-http_realip_module --with-http_addition_module --with-http_gzip_static_module --with-http_random_index_module --with-http_stub_status_module --with-http_sub_module --with-http_dav_module --with-openssl=/usr/local/src/openssl-1.0.1g --add-module= /home/hdfs/nginx_upstream_check_module-master/
此过程若报错:
./configure: error: the HTTP gzip module requires the zlib library.
You can either disable the module by using --without-http_gzip_module
option, or install the zlib library into the system, or build the zlib library
statically from the source with nginx by using --with-zlib=<path> option.
执行:yum install -y zlib-devel 按照zlib包
make install
不报错安装完成。
===============================================================================3.配置负载均衡和健康检查
  进入nginx按照目录,
  cd /usr/local/nginx/conf
  more nginx.conf,关键配置如下:
  http {
    include       mime.types;
    default_type  application/octet-stream;
    keepalive_timeout  65;
 
    #gzip  on;
    upstream 172.19.189.53{ #负载均衡配置,默认的策略,按时间先后,有其他按ip hash,权重
        server 172.19.189.49:7070;
        server 172.19.189.50:7070;
        server 172.19.189.51:7070;
        check interval=3000 rise=2 fall=3 timeout=3000 type=http port=7070;
# interval=3000:间隔3秒检查一次,rise=2:检查2次ok后端节点up,fall=3:三次检查失败后端节点down,timeout=3000:超时时间3秒,type=http:发http检查请求类型,port=7070检查端口,可省略,默认和server
172.19.189.49:7070中的端口一致。
        check_http_send "HEAD /kylin HTTP/1.0\r\n\r\n";①
        check_http_expect_alive http_2xx http_3xx;
    }
    server {
        listen       8880;#nginx监听的端口,可修改。
        server_name  kylin_balance;
        location / {
            proxy_pass http://172.19.189.53; #反向代理,代理哪个应用服务器----②
            proxy_set_header Host $host;#此下三行设置把客户端的真实ip传给后端,可省
            proxy_set_header X-Real-IP $remote_addr;
            proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
            root   html;#请求到达nginx服务器后,分发不出去,会去nginx安装目录root下找页面
            index  index.html index.htm;#默认找index.html,可自定义页面
        }
      
        location /status { #健康检查
            check_status; 
            access_log off; 
        } 
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {#错误页面
            root   html;
        }
}
}
注:①处,若请求url类型是http://ip:port/name类型的,此处的设置要在HEAD后加 /kylin,否则后端健康检查节点一直为down。
   ②处,此url为访问应用服务的请求域名部分,如应用服务部署在
      172.19.189.49/172.19.189.50/172.19.189.51三台
不通过nginx的请求url为:http://172.19.189.49:7070/kylin,通过nginx访问的请求url为:http:// 172.19.189.53:8880/即可。
修改完配置后启动./nginx,若遇到error while loading shared libraries: libpcre.so.1: cannot open shared object file: No such file or directory
通过uname –a看系统多少位:
如果是32位系统: ln -s /usr/local/lib/libpcre.so.1 /lib
如果是64位系统: ln -s /usr/local/lib/libpcre.so.1 /lib64
 
4.查看负载均衡和节点健康状况:
1.负载均衡
   1.1 这种方法,是在其他应用服务器上也安装nginx,把root下的index.html改为可以显示本机ip的内容,这样页面输入请求时,可以直观的看到负载是否均衡。
   1.2 通过观看服务的日志,同时打开多台服务器上的应用的日志,看请求是否分发到不同的机器上去。
2.节点健康状态监控
   若监控的服务都正常,如下所示,状态显示up



停止49上的服务,则短暂时间后,状态显示down





注: nginx的启动停止命令:
   nginx -s stop/start/reload(修改配置文件nginx.conf直接reload就生效,不用先停后启)
参考文章链接:
http://www.linuxidc.com/Linux/2015-03/114988.htm
http://www.linuxidc.com/Linux/2015-03/114986.htm
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: