team470 发表于 2015-9-5 08:06:05

LVS+NGINX+TOMCAT_集群实施操作记录.docx


  
  
  
  
  
  
  
  


  LVS
  IP:
  Eth0:192.168.100.115
  Eth1:192.168.100.215
  
  Vi /etc/init.d./lvs
  #!/bin/sh   
  #   
  # lvs   Start lvs   
  #   
  # chkconfig: 2345 08 92   
  # description:Starts, stops and saves lvs   
  #   
  
  SNS_VIP=192.168.100.215
  SNS_RIP1=192.168.100.114
  SNS_RIP2=192.168.100.113
  
  
  . /etc/rc.d/init.d/functions   
  
  #logger $0 called with $1   
  retval=0   
  start()   
  {   
  #set squid vip   
  /sbin/ipvsadm --set 30 5 60   
  #/sbin/ifconfig eth0:0 $SNS_VIP broadcast $SNS_VIP netmask255.255.255.255 broadcast $SNS_VIP up   
  #/sbin/route add -host $SNS_VIP dev eth0:0   
  /sbin/ipvsadm -A -t $SNS_VIP:80 -s rr
  /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP1 -g   
  /sbin/ipvsadm -a -t $SNS_VIP:80 -r $SNS_RIP2 -g   
  touch /var/lock/subsys/ipvsadm > /dev/null 2 >&1   
  echo "ipvsadm started"
  }   
  
  stop()   
  {   
  /sbin/ipvsadm -C   
  /sbin/ipvsadm -Z   
  #ifconfig eth0:0 down   
  #route del $SNS_VIP   
  rm -rf /var/lock/subsys/ipvsadm > /dev/null 2 >&1   
  echo "ipvsadm stoped"
  }   
  
  status()   
  {   
  if [ ! -e /var/lock/subsys/ipvsadm ];then   
  echo "ipvsadm stoped"
  exit 1   
  else
  echo "ipvsadm OK"
  fi   
  }   
  
  case "$1" in
  start)   
  start   
  ;;   
  stop)   
  stop   
  ;;   
  
  status)   
  status   
  ;;   
  restart)   
  stop   
  start   
  ;;   
  
  *)   
  echo $"Usage: $0 {start|stop|status}"
  retval=1   
  esac   
  exit $retval
  
  
  keepalvived
  
  tar xf keepalived-1.2.7.tar.gz
  cd keepalived-1.2.7
  ./configure --prefix=/ --mandir=/usr/local/share/man/--with-kernel-dir=/usr/src/kernels/2.6.32-279.el6.x86_64
  Make
  make install
  cd /etc/keepalived/
  mv keepalived.conf keepalived.conf.default
  chkconfig --add keepalived
  chkconfig keepalived on
  
  
  vim /etc/keepalived/keepalived.conf
  
  ! Configuration File for keepalived
  
  global_defs {
  notification_email {
  root@localhost
  }
  notification_email_from root@localhost
  smtp_server 127.0.0.1
  smtp_connect_timeout 30
  router_id Director1
  }
  
  #VRRP(虚拟路由冗余协议)实例配置
  vrrp_instance VI_1 {
  state MASTER
  interface eth0
  virtual_router_id 51
  priority 150
  advert_int 1
  authentication {
  auth_type PASS
  auth_pass 1111
  }
  virtual_ipaddress {
  192.168.122.254/24 eth1
  }
  }
  #LVS配置
  virtual_server 192.168.100.215 80 {
  delay_loop 3
  lb_algo rr
  lb_kind DR
  nat_mask 255.255.255.0
  #persistence_timeout 50
  protocol TCP
  
  real_server192.168.100.113 80 {
  weight 1
  TCP_CHECK {
  connect_port 80
  connect_timeout 10
  nb_get_retry 3
  delay_before_retry 3
  }
  }
  real_server 192.168.100.114 80 {
  weight 1
  TCP_CHECK {
  connect_port 80
  connect_timeout 10
  nb_get_retry 3
  delay_before_retry 3
  }
  }
  }
  }
  
  LVS-realserver
  
  Ip 192.168.100.113
  Ip 192.168.100.114
  
  Vi/etc/init.d/rsup
  
  #!/bin/bash
  
  VIP=192.168.100.215
  
  
  
  ifconfig lo:0 $VIP broadcast $VIP netmask255.255.255.255 up
  
  #route add –host $VIP dev lo:0
  
  
  echo "1">/proc/sys/net/ipv4/conf/lo/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/lo/arp_announce
  echo "1">/proc/sys/net/ipv4/conf/all/arp_ignore
  echo "2">/proc/sys/net/ipv4/conf/all/arp_announce
  #sysctl –p
  Nginx
  
  Ip 192.168.100.122(nfs)
  Ip 192.168.100.113
  Ip 192.168.100.114
  
  #安装zlib
  tar xzvf zlib-1.2.3.tar.gz
  cd zlib-1.2.3
  ./configure
  make && make install
  
  #安装pcre
  tar zxvf pcre-7.9.tar.gz
  cd pcre-7.9
  ./configure --prefix=/usr/local/pcre
  make && make install
  
  wget http://h264.code-shop.com/download/nginx_mod_h264_streaming-2.2.7.tar.gz
  tar -zxvfnginx_mod_h264_streaming-2.2.7.tar.gz
  
  
  unzipnginx_upstream_check_module-master.zip
  mv./nginx_upstream_check_module-master /root/health
  
  tar -xvf nginx-1.4.1.tar.gz-C /usr/src/
  useradd nginx
  cd /usr/src/nginx-1.4.1
  patch-p1 < /root/health/check_1.2.6+.patch
  
  ./configure --user=nginx--group=nginx --with-http_stub_status_module --with-http_ssl_module--with-http_gzip_static_module --with-http_flv_module--add-module=../nginx_mod_h264_streaming-2.2.7 --with-pcre=/software/pcre-7.9 --with-zlib=/software/zlib-1.2.3--prefix=/usr/local/nginx --add-module=/root/health
  
  make&& make install
  /usr/local/nginx/sbin/nginx
  
  开机自动启动
  vi /etc/init.d/nginx
  #!/bin/bash
  #
  #nginx - this script starts and stops the nginx daemin
  #
  #chkconfig:   - 85 15   
  #description:Nginx is an HTTP(S) server,HTTP(S) reverse \
  #               proxy andIMAP/POP3 proxy server
  #processname: nginx
  #config:   /usr/local/nginx/conf/nginx.conf
  #pidfile:    /usr/local/nginx/logs/nginx.pid
  
  #Source function library.
  ./etc/rc.d/init.d/functions
  
  #Source networking configuration.
  ./etc/sysconfig/network
  
  #Check that networking is up.
  ["$NETWORKING" = "no" ] && exit 0
  
  nginx="/usr/local/nginx/sbin/nginx"
  prog=$(basename $nginx)
  
  NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf"
  
  lockfile=/var/lock/subsys/nginx
  
  start() {
  [ -x $nginx ] || exit 5
  [ -f $NGINX_CONF_FILE ] || exit 6
  echo -n $"Starting $prog: "
  daemon $nginx -c $NGINX_CONF_FILE
  retval=$?
  echo
  [ $retval -eq 0 ] && touch $lockfile
  return $retval
  }
  
  stop(){
  echo-n $"Stopping $prog: "
  killproc $prog -QUIT
  retval=$?
  echo
  [$retval -eq 0 ] && rm -f $lockfile
  return $retval
  }
  
  restart(){
  configtest || return $?
  stop
  start
  }
  
  reload(){
  configtest || return $?
  echo-n $"Reloading $prog: "
  killproc $nginx -HUP
  RETVAL=$?
  echo
  }
  
  force_reload() {
  restart
  }
  
  configtest() {
  $nginx-t -c $NGINX_CONF_FILE
  }
  
  rh_status() {
  status $prog
  }
  
  rh_status_q() {
  rh_status >/dev/null 2>&1
  }
  
  case "$1" in
  start)
  rh_status_q && exit 0
  $1
  ;;
  stop)
  rh_status_q || exit 0
  $1
  ;;
  restart|configtest)
  $1
  ;;
  reload)
  rh_status_q || exit 7
  $1
  ;;
  force-reload)
  force_reload
  ;;
  status)
  rh_status
  ;;
  condrestart|try-restart)
  rh_status_q || exit 0
  ;;
  *)
  echo $"Usage: $0{start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"
  exit 2
  esac
  
  ##############################################################################
  改权限
  chmod 755/etc/init.d/nginx
  
  chkconfig nginx on
  
  chkconfig --list nginx
  nginx         0:off   1:off2:on    3:on    4:on   5:on    6:off
  
  
  
  service nginxstart
  service nginxstop
  service nginxrestart
  service nginxreload
  
  /etc/init.d/nginxstart
  /etc/init.d/nginxstop
  /etc/init.d/nginxrestart
  /etc/init.d/nginxreload
  
  
  
  
  
  
  
  Nginx 配置文件
  vi /usr/local/nginx/conf/nginx.conf
  
  #usernginx nginx;
  worker_processes12;
  error_log/usr/local/nginx/logs/error.logcrit;
  pid      /usr/local/nginx/logs/nginx.pid;
  worker_rlimit_nofile65535;
  
  events
  {
  use epoll;
  worker_connections 204800;
  }
  
  http
  {
  include      mime.types;
  default_type application/octet-stream;
  charset utf-8;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 2k;
  large_client_header_buffers 4 4k;
  client_max_body_size 8m;
  sendfile on;
  tcp_nopush    on;
  keepalive_timeout 60;
  fastcgi_cache_path/usr/local/nginx/fastcgi_temp levels=1:2
  keys_zone=TEST:10m
  inactive=5m;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 1638;
  fastcgi_buffers 16 16k;
  fastcgi_busy_buffers_size 16k;
  fastcgi_temp_file_write_size 16k;
  fastcgi_cache TEST;
  fastcgi_cache_valid 200 302 1h;
  fastcgi_cache_valid 301 1d;
  fastcgi_cache_valid any 1m;
  fastcgi_cache_min_uses 1;
  fastcgi_cache_use_stale error timeoutinvalid_header http_500;
  
  open_file_cache max=204800 inactive=20s;
  open_file_cache_min_uses 1;
  open_file_cache_valid 30s;
  
  tcp_nodelay on;
  
  gzip on;
  gzip_min_length1k;
  gzip_buffers   4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascripttext/css application/xml;
  gzip_vary on;
  
  upstreamnginx_server {
  ip_hash;
  server 192.168.100.122:80;
  }
  upstreamweb_server {
  ip_hash;
  server 192.168.100.131:9001;
  server 192.168.100.132:9001;
  server 192.168.100.133:9001;
  server 192.168.100.134:9001;
  check interval=3000 rise=2 fall=5timeout=1000;
  }
  upstreamnapi_server {
  ip_hash;
  server 192.168.100.131:9002;
  server 192.168.100.132:9002;
  server 192.168.100.133:9002;
  server 192.168.100.134:9002;
  server 192.168.100.131:9003;
  server 192.168.100.132:9003;
  server 192.168.100.133:9003;
  server 192.168.100.134:9003;
  server 192.168.100.131:9004;
  server 192.168.100.132:9004;
  server 192.168.100.133:9004;
  server 192.168.100.134:9004;
  check interval=3000 rise=2 fall=5timeout=1000;
  }
  upstreamoapi_server {
  ip_hash;
  server 192.168.100.131:9005;
  server 192.168.100.132:9005;
  server 192.168.100.133:9005;
  server 192.168.100.134:9005;
  server 192.168.100.131:9006;
  server 192.168.100.132:9006;
  server 192.168.100.133:9006;
  server 192.168.100.134:9006;
  check interval=3000 rise=2 fall=5timeout=1000;
  }
  
  server {
  listen       80;
  server_namelocalhost;
  
  location ~.*\.(gif|jpg|jpeg|png|bmp|swf|html|mp3|wma|wmv)$
  {
  root /usr/wodm/;
  proxy_pass http://nginx_server;
  }
  
  
  location ~ .*\.(js|css)?$
  {
  expires      1h;
  }
  
  
  location /NginxStatus
  {
  stub_status               on;
  access_log                  on;
  auth_basic                  "NginxStatus";
  #auth_basic_user_file       conf/htpasswd;
  }
  
  location /nstatus {
  check_status;
  access_log off;
  }
  
  error_page500 502 503 504/50x.html;
  location = /50x.html {
  root   html;
  }
  
  }
  
  log_formataccess '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent"$http_referer" '       '"$http_user_agent"$http_x_forwarded_for';
  access_log/usr/local/nginx/logs/access.log access;
  
  include/usr/local/nginx/conf/vhost/*.conf;
  }
  
  
  
  
  
  
  
  Nginx(nfs)
  Nginx.conf
  #usernginx nginx;
  worker_processes16;
  #worker_cpu_affinity00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;
  error_log/usr/local/nginx/logs/error.logcrit;
  pid      /usr/local/nginx/logs/nginx.pid;
  worker_rlimit_nofile204800;
  
  events
  {
  use epoll;
  worker_connections 204800;
  }
  
  http
  {
  include      mime.types;
  default_type application/octet-stream;
  charset utf-8;
  server_names_hash_bucket_size 128;
  client_header_buffer_size 2k;
  large_client_header_buffers 4 4k;
  client_max_body_size 8m;
  sendfile on;
  tcp_nopush    on;
  keepalive_timeout 60;
  fastcgi_cache_path/usr/local/nginx/fastcgi_cache levels=1:2
  keys_zone=TEST:10m
  inactive=5m;
  fastcgi_connect_timeout 300;
  fastcgi_send_timeout 300;
  fastcgi_read_timeout 300;
  fastcgi_buffer_size 1638;
  fastcgi_buffers 16 16k;
  fastcgi_busy_buffers_size 16k;
  fastcgi_temp_file_write_size 16k;
  fastcgi_cache TEST;
  fastcgi_cache_valid 200 302 1h;
  fastcgi_cache_valid 301 1d;
  fastcgi_cache_valid any 1m;
  fastcgi_cache_min_uses 1;
  fastcgi_cache_use_stale error timeoutinvalid_header http_500;
  
  open_file_cache max=204800 inactive=20s;
  open_file_cache_min_uses 1;
  open_file_cache_valid 30s;
  
  tcp_nodelay on;
  
  gzip on;
  gzip_min_length1k;
  gzip_buffers   4 16k;
  gzip_http_version 1.0;
  gzip_comp_level 2;
  gzip_types       text/plain application/x-javascripttext/css application/xml;
  gzip_vary on;
  
  server
  {
  listen      80;
  server_name localhost;
  index index.php index.htm;
  root /usr/wodm/;
  location /status
  {
  stub_status on;
  }
  
  
  location ~.*\.(gif|jpg|jpeg|png|bmp|swf|html|mp3|wma|wmv)$
  {
  expires      30d;
  }
  }
  
  log_formataccess '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent"$http_referer" '      '"$http_user_agent" $http_x_forwarded_for';
  access_log/usr/local/nginx/logs/access.log access;
  
  
  
  
  标准字符集
  vi/etc/sysconfig/i18n
  
  LANG="zh_CN.UTF-8"SYSFONT="latarcyrheb-sun16"SUPPORTED="zh_CN.UTF-8:zh_CN:zh"
  LANG="zh_CN.GB18030"
  SUPPORTED="zh_CN.GB18030:zh_CN:zh:en_US.UTF-8:en_US:en"
  
  打开文件数
  vi /etc/security/limits.conf
  * soft nofile 65535
  * hard nofile 65535
  
  vi /etc/pam.d/login
  session required /lib/security/pam_limits.so
  
  
  nginx日志按天分割
  vinginx_log.sh
  #!/bin/bash
  logs_path="/usr/local/nginx/logs/"
  pid_path="/usr/local/nginx/nginx.pid"
  mv ${logs_path}access.log ${logs_path}access_$(date -d"yesterday" +"%Y%m%d").log
  kill -USR1 `cat ${pid_path}`
  
  
  chmod 755 nginx_log.sh
  
  crontab –e
  0 0 * * *bash/usr/local/nginx/nginx_log.sh
  Tomcatmemcache
  
  tar xf libevent-1.4.11-stable.tar.gz
  cd libevent-1.4.11-stable
  ./configure
  make
  make install
  cd ../
  tar xf memcached-1.4.5.tar.gz
  cd memcached-1.4.5
  ./configure
  make
  make install
  /usr/local/bin/memcached -d -m 10 -u root -l 192.168.1.113 -p11211 -c 1024 -P /tmp/memcached.pid
  
  
  
  Memcache+tomcat 共享session
  后续计划尚未配置
页: [1]
查看完整版本: LVS+NGINX+TOMCAT_集群实施操作记录.docx