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

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

[复制链接]

尚未签到

发表于 2015-9-5 08:06:05 | 显示全部楼层 |阅读模式
DSC0000.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/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: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
  
  
  
  Memcache+tomcat 共享session
  后续计划尚未配置

运维网声明 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.iyunv.com/thread-109541-1-1.html 上篇帖子: LVS环境搭建入门 下篇帖子: Linux群集LVS简介
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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