繁体中文  设为首页  加入收藏 
当前位置:学院首页 >> 技巧 >> Linux >> Nginx + Tomcat 负载均衡集群配置


Nginx + Tomcat 负载均衡集群配置

2011-10-20 21:15:00  www.hackbase.com  来源:互联网
  摘要   Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。   Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。
  摘要
  Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器。
  Nginx 已经因为它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名了。
  Nginx 发布
  当前稳定版: Nginx 0.6.35 (更新记录) (
  2009年1月26日)
  当前开发版: Nginx 0.7.44 (更新记录) (
  2009年3月23日)
  历史稳定版: Nginx 0.5.37 (更新记录) (
  2008年7月7日)
  Nginx文档地址
  http://wiki.nginx.org/NginxChs
  注意点
  1 Nginx并不支持Windows,只能在Linux,Unix,BSD 系统下安装使用
  2 Nginx本身是一个HTTP和反向代理服务器,无法像Apache一样通过安装各种模块来支持不同
  的页面脚本(PHP,CGI)
  3 Nginx支持简单的负载均衡和容错
  4 Nginx支持作为基本HTTP 服务器的功能,例如日志,压缩,SSL,虚拟主机等。
  环境
  RedHat Linux Enterpriser Server 5
  Nginx-0.6.31
  ( 稳定版本)
  JDK 1.6
  Tomcat 6.0.18
  安装
  创建用户组和帐号
  #/usr/sbin/groupadd www -g 48
  #/usr/sbin/useradd -u 48 -g www www
  #wget http://sysoev.ru/nginx/nginx-0.6.31
  .tar.gz
  #tar zxvf nginx-0.6.31
  .tar.gz
  #cd nginx-0.6.31
  #./configure --with-http_stub_status_module --prefix=/usr/local/nginx
  --user=www --group=www
  #make
  #make isntall
  #--with-http_stub_status_module 是为了启用nginx的status功能,用来监控Nginx的当前状态
  安装后,有四个子目录conf/nginx.conf html logs sbin/nginx
  确保系统80端口没有被其他程序占用,运行sbin/nginx启动,浏览器访问。
  #/usr/local/nginx/sbin/nginx
  编译rewrite模块
  需要正则表达式,需要安装pcre包
  #wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-7.7.tar.gz
  #tar zxvf pcre-7.7.tar.gz
  #cd pcre-7.7
  #./configure
  #make
  #make install
  程序运行参数:
  Nginx安装后只有一个程序文件,使用参数和系统信号机制对Nginx进程本身进行控制。
  -c <path_to_config>:使用指定的配置文件
  -t :测试配置文件是否正确,在运行时需要重新加载配置文件,用来测试所修改配置文件是
  否有错误语法
  -v :显示版本号
  -V :显示版本号和编译环境信息和编译参数
  #sbin/nginx -t -c conf/nginx2.conf
  通过信号对Nginx进行控制:
  支持的信号:
  TERM 快速关闭彻骨女婿,中止当前正在处理请求
  INT
  QUIT 处理完当前请求后,关闭程序
  HUP 重新加载配置,并开始启动新的工作进程,关闭旧的进程,此操作不会中断请求
  USER1 重新打开日志文件,用于切换日志,如:每天生成一个新的日志文件
  USER2 平滑升级可执行程序
  WINCH 从容关闭工作进程
  两种方式:
  1 通过logs下的nginx.pid 查看当前运行的进程id ,kill - XXX <pid> 来控制进程。XXX就
  是信号明。
  2 也可以使用killall 来完成。如killall -s HUP nginx 来重新加载配置文件。
  配置
  conf/nginx.conf文件:
  user www www; # 工作进程的宿主
  worker_processes 8; # 工作进程数,一般跟CPU核数目相同
  #error_log logs/error.log; debug 模式
  error_log logs/error.log notice;
  #error_log logs/error.log info;
  pid        logs/nginx.pid;
  gzip on; #打开gzip模式
  gzip_camp_level 5; #压缩级别 1-9 ,1 最快,9最慢
  gzip_min_length 1100;
  gzip_buffers 4 8 k;
  worker_rlimit_nofile 51200;
  events {
  use epoll; # Linux下性能最好的event
  worker_connections 51200; #每个进程允许最大的连接数
  }
  #access_log logs/access.log main; #日志文件名
  upstream tomcat{
  server 192.168.0.119:5050 down;
  server 192.168.0.117:5050 weight=1;
  server 192.168.0.142:5050 weight=1;
  }
  include /usr/local/nginx/conf/proxy.conf;
  location / {
  root   html;
  index index.html index.htm;
  proxy_pass http://tomcat;
  }
  location /NginxStatus {
  stub_status             on;
  access_log              off;
  allow all;
  #auth_basic              "status";
  #auth_basic_user_file conf/htpasswd;
  }
  # 静态文件和图片服务器时使用
  location ~ ^/images/{
  root /opt/webapp/images;
  }
  location ~ \.(htm|html|gif|jpg|jpeg|png|bmp|ico|css|js|txt)${
  root /opt/webapp;
  access_log off;
  expires 24h;
  }
  expires 60s;#30m
  24h 1d max off
  location / {
  proxy_pass http://localhost:8080;
  proxy_set_header X-Real-IP $remote_addr;
  }
  location / {
  proxy_pass http://tomcat;
  proxy_set_header X-Real-IP $remote_addr;
  }
  #Nginx使用最简单的平均分配规则给集群的节点。若一个失效,或重新起效时,Nginx会自己处理状态的变化。
  proxy.conf 文件
  #!nginx (-)
  # proxy.conf
  proxy_redirect          off;
  proxy_set_header        Host            $host;
  proxy_set_header        X-Real-IP       $remote_addr;
  proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
  client_max_body_size    10m
  ;
  client_body_buffer_size 128k;
  proxy_connect_timeout   90;
  proxy_send_timeout      90;
  proxy_read_timeout      90;
  proxy_buffers           32 4k;
  #sbin/nginx -t
  #ulimit -SHn 51200
  #sbin/nginx
  #kill -HUP 'cat /usr/local/nginx/logs/nginx.pid'
  #重新加载新的配置文件
  监控:
  http://localhost/NginxStatus
  active connections :当前正在处理的活动连接数。
  server accepts handled requests:总共处理的n个连接,成功创建n次握手(证明中间没有
  失败的),总共处理了n个请求。
  reading: 读取到客户端的Header信息数。
  writing: 返回给客户端的Header信息数。
  waiting: 开启keep-alive 情况下,该值等于active -(reading+writing),nginx已经在处
  理完成正在等候下一次请求指令的驻留连接。
  总结:
  一般可以对nginx的worker_processes和
  worker_connections进行调整,来达到性能的调优。

   免责声明:本文仅代表作者个人观点,与本站无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。

责任编辑:pangpang        



本文引用网址: 

Nginx + Tomcat 负载均衡集群配置的相关文章