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 netmask 255.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_server 192.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 netmask 255.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 -zxvf nginx_mod_h264_streaming-2.2.7.tar.gz

 

 

unzip nginx_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 and IMAP/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:off   2:on    3:on    4:on    5:on    6:off

 

 

 

service nginx start

service nginx stop

service nginx restart

service nginx reload

 

/etc/init.d/nginx start

/etc/init.d/nginx stop

/etc/init.d/nginx restart

/etc/init.d/nginx reload

 

 

 

 

 

 

 

Nginx 配置文件

vi /usr/local/nginx/conf/nginx.conf

 

#user  nginx nginx;

worker_processes 12;

error_log  /usr/local/nginx/logs/error.log  crit;

pid        /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 65535;

 

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 timeout invalid_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_length  1k;

  gzip_buffers     4 16k;

  gzip_http_version 1.0;

  gzip_comp_level 2;

  gzip_types       text/plain application/x-javascript text/css application/xml;

  gzip_vary on;

 

upstream nginx_server {

        ip_hash;

        server 192.168.100.122:80;

}

upstream web_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=5 timeout=1000;

}

upstream napi_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=5 timeout=1000;

}

upstream oapi_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=5 timeout=1000;

}

 

    server {

        listen       80;

        server_name  localhost;

 

        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_page   500 502 503 504  /50x.html;

        location = /50x.html {

            root   html;

        }

 

}

 

       log_format  access  '$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

#user  nginx nginx;

worker_processes 16;

#worker_cpu_affinity 00000001 00000010 00000100 00001000 00010000 00100000 01000000 10000000;

error_log /usr/local/nginx/logs/error.log  crit;

pid        /usr/local/nginx/logs/nginx.pid;

worker_rlimit_nofile 204800;

 

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 timeout invalid_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_length  1k;

  gzip_buffers     4 16k;

  gzip_http_version 1.0;

  gzip_comp_level 2;

  gzip_types       text/plain application/x-javascript text/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_format  access  '$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  日志按天分割

vi  nginx_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

Tomcat  memcache

 

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 -p 11211 -c 1024 -P /tmp/memcached.pid

 

 

 

Memcache+tomcat 共享session

后续计划尚未配置

posted @ 2014-07-10 07:32  弹着钢琴设计  阅读(3534)  评论(0编辑  收藏  举报