设为首页 收藏本站
查看: 1867|回复: 0

[经验分享] LVS+NGINX+TOMCAT_集群实施操作记录

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2014-7-10 08:53:04 | 显示全部楼层 |阅读模式
100731588482643.png









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:off  2: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

#user  nginx nginx;
worker_processes12;
error_log  /usr/local/nginx/logs/error.log  crit;
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_length  1k;
  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_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_processes16;
#worker_cpu_affinity00000001 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_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_length  1k;
  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_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 -p11211 -c 1024 -P /tmp/memcached.pid




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-21888-1-1.html 上篇帖子: 基于SaltStack完成LVS的配置管理 下篇帖子: Redhat5.8 64位LVS实例环境讲解【一】 记录
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表