eqwq 发表于 2014-7-10 08:53:04

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











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/downlo ... eaming-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



页: [1]
查看完整版本: LVS+NGINX+TOMCAT_集群实施操作记录