kaiser_cn 发表于 2018-11-8 09:18:23

nginx nginx_upstream_check_module nginx-sticky-module 安装

  https://github.com/yaoweibin/nginx_upstream_check_module
  https://code.google.com/p/nginx-sticky-module/downloads/list
  https://github.com/gnosek/nginx-upstream-fair       git clone git://github.com/gnosek/nginx-upstream-fair.git
  百度云共享 http://pan.baidu.com/s/1hqELspA
  1、nginx_http_upstream_check_module
  unzip nginx_upstream_check_module-master.zip
  tar -zxvf nginx-1.7.11.tar.gz
  cd nginx-1.7.11
  patch -p1 < /path/to/nginx_http_upstream_check_module/check_1.7.5+.patch
  nginx-1.9.2以上请使用 patch -p0 < /path/to/nnginx_http_upstream_check_module/check_1.9.2+.patch安装
  Note
  If you use nginx-1.2.1 or nginx-1.3.0, the nginx upstream round robin
  module changed greatly. You should use the patch named
  'check_1.2.1.patch'.
  If you use nginx-1.2.2+ or nginx-1.3.1+, It added the upstream
  least_conn module. You should use the patch named 'check_1.2.2+.patch'.
  If you use nginx-1.2.6+ or nginx-1.3.9+, It adjusted the round robin
  module. You should use the patch named 'check_1.2.6+.patch'.
  If you use nginx-1.5.12+, You should use the patch named
  'check_1.5.12+.patch'.
  If you use nginx-1.7.2+, You should use the patch named
  'check_1.7.2+.patch'.
  The patch just adds the support for the official Round-Robin, Ip_hash
  and least_conn upstream module. But it's easy to expand my module to
  other upstream modules. See the patch for detail.
  2、nginx-upstream-fair(已经不支持nginx-1.9.2)
  可以根据页面大小、加载时间长短智能的进行负载均衡,例子:
  upstream your-site {
  server 127.0.0.1:5550;
  server 127.0.0.1:5551;
  fair;
  }
  server {
  listen 80;
  server_name yoursite.com www.yoursite.com;
  access_log /var/log/nginx/access.log;
  location / {
  proxy_set_header Host $host;
  proxy_set_header X-Real-IP $remote_addr;
  proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
  proxy_set_header X-Forwarded-Proto $scheme;
  client_max_body_size 10m;
  client_body_buffer_size 128k;
  proxy_connect_timeout 60s;
  proxy_send_timeout 90s;
  proxy_read_timeout 90s;
  proxy_buffering off;
  proxy_temp_file_write_size 64k;
  proxy_pass http://your-site;
  proxy_redirect off;
  }
  }
  unzip nginx-upstream-fair-master.zip
  cd nginx-upstream-fair-master
  patch -p2 < /path/to/nginx_http_upstream_check_module/upstream_fair.patch
  can't find file to patch at input line 5
  Perhaps you used the wrong -p or --strip option?
  The text leading up to this was:
  --------------------------
  |diff --git a/ngx_http_upstream_fair_module.c b/ngx_http_upstream_fair_module.c
  |index a4419ca..af80bba 100644
  |--- a/ngx_http_upstream_fair_module.c
  |+++ b/ngx_http_upstream_fair_module.c
  --------------------------
  File to patch: /usr/local/src/nginx_upstream_check_module-master/upstream_fair.patch
  3、nginx-sticky-module (该模块可实现基于cookie的负载均衡,已经不支持nginx-1.8.0)
  tar -zxvf nginx-sticky-module-1.1.tar.gz
  cd nginx-sticky-module-1.1
  patch -p0 < /path/to/nginx_http_upstream_check_module/nginx-sticky-module.patch
  /nginx-sticky-module-1.1/ngx_http_sticky_misc.c:281: error: passing argument 2 of ‘ngx_sock_ntop’ makes integer from pointer without a cast
  nginx-1.5.x及以上和nginx-sticky-module-1.1编译会有点问题,应该是nginx新版本没有相应的nginx-sticky-module,解决办法是把nginx-sticky-module-1.1/ngx_http_sticky_misc.c的281行修改为:
  digest->len = ngx_sock_ntop(in,sizeof(struct sockaddr_in), digest->data, len, 1);
  cdnginx-1.7.11
  --prefix=/usr/local/nginx--user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module --with-pcre=/usr/local/src/pcre-8.37 --with-http_realip_module --with-http_image_filter_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2d --add-module=/usr/local/src/ngx_devel_kit-0.2.19 --add-module=/usr/local/src/lua-nginx-module-0.9.15/ --add-module=/usr/local/src/nginx_upstream_check_module-master --add-module=/usr/local/src/nginx-sticky-module-1.1 --add-module=/usr/local/src/nginx-upstream-fair-master
  make; make install

页: [1]
查看完整版本: nginx nginx_upstream_check_module nginx-sticky-module 安装