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

[经验分享] mysql两主多从+heartbeat+nginx+php+vanish+haproxy+redis+sphinx+nfs+inotify+rsync

[复制链接]

尚未签到

发表于 2018-11-7 12:28:30 | 显示全部楼层 |阅读模式
  一.依赖环境安装
  yum install gcc-c++  gcc ncurses-devel bison
  tar zxvf cmake-2.8.9.tar.gz
  cd cmake-2.8.9
  ./configure
  make;make install
  二.mysql安装与配置
  groupadd mysql
  useradd -g mysql mysql
  tar zxvf mysql-5.5.27.tar.gz
  cd mysql-5.5.27
  cmake . \
  -DCMAKE_INSTALL_PREFIX=/usr/local/mysql-5.5.27 \
  -DMYSQL_DATADIR=/data/mysql \
  -DMYSQL_UNIX_ADDR=/data/mysql/mysqld.sock \
  -DDEFAULT_CHARSET=utf8 \
  -DDEFAULT_COLLATION=utf8_general_ci \
  -DWITH_EXTRA_CHARSETS=gbk,gb2312,utf8,ascii \
  -DWITH_MYISAM_STORAGE_ENGINE=1 \
  -DWITH_INNOBASE_STORAGE_ENGINE=1 \
  -DWITH_MEMORY_STORAGE_ENGINE=1 \
  -DWITH_READLINE=1 \
  -DENABLED_LOCAL_INFILE=1 \
  -DMYSQL_USER=mysql \
  -DMYSQL_TCP_PORT=3306 \
  -DWITH_DEBUG=0
  make;make install
  =======================mysql配置=================================
  cd /usr/local/mysql-5.5.27/
  cp ./support-files/my-huge.cnf /etc/my.cnf
  cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
  chmod 700 /etc/rc.d/init.d/mysqld
  chkconfig --add mysqld
  mkdir -p /data/mysql
  mkdir -p /data/mysql/3306/logs/binlog/
  chown -R mysql:mysql /data/mysql
  /usr/local/mysql-5.5.27/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql-5.5.27 --datadir=/data/mysql/3306/data
  mv /etc/my.cnf /data/mysql/3306/
  ln -s /data/mysql/3306/my.cnf /etc/my.cnf
  service mysqld start
  cp -rf /usr/local/mysql-5.5.27/bin/* /usr/bin/
  mysqladmin -uroot password 'pinla2012'
  ======================主从配置============================
  【master1】
  ====主数据库设置====
  vim /etc/my.cnf
  在mysqld中追加
  #********master1*********
  server-id=1
  log-bin=mysql-bin
  read-only=0
  innodb_flush_log_at_trx_commit=1
  sync_binlog=1
  #binlog-do-db=pinladb
  binlog_ignore_db=mysql
  binlog_ignore_db=test
  binlog_ignore_db=information_schema
  replicate-ignore-db=test
  replicate-ignore-db=mysql
  replicate-ignore-db=information_schema
  log-slave-updates
  slave-skip-errors=all
  auto_increment_increment=2
  auto_increment_offset=1
  service mysqld restart
  mysql -uroot -p
  GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER,RELOAD ON *.* TO pinla_backup@'%'IDENTIFIED by 'pinla2012';
  ==pinla_backup账号测试==
  mysql -h192.168.10.240 -upinla_backup -p
  change master to master_host='192.168.10.245',master_user='pinla_backup',master_password='pinla2012';
  flush privileges;
  slave start;
  show slave status\G
  【master2】
  #********master2*********
  server-id=2
  log-bin=mysql-bin
  read-only=0
  innodb_flush_log_at_trx_commit=1
  sync_binlog=1
  #binlog-do-db=pinladb
  binlog_ignore_db=mysql
  binlog_ignore_db=test
  binlog_ignore_db=information_schema
  replicate-ignore-db=test
  #replicate-ignore-db=mysql
  #replicate-ignore-db=information_schema
  log-slave-updates
  slave-skip-errors=all
  sync_binlog=1
  auto_increment_increment=2
  auto_increment_offset=2
  service mysqld restart
  mysql -uroot -p
  GRANT FILE,REPLICATION SLAVE,REPLICATION CLIENT,SUPER,RELOAD ON *.* TO pinla_backup@'%'IDENTIFIED by 'pinla2012';
  ==pinla_backup账号测试==
  mysql -h192.168.10.245 -upinla_backup -p
  change master to master_host='192.168.10.240',master_user='pinla_backup',master_password='pinla2012';
  flush privileges;
  slave start;
  show slave status\G
  show processlist \G;
  【slave】
  ===从数据库设置====
  #****slave******
  server-id=11
  log-bin=mysql-bin
  binlog_format=mixed
  replicate-ignore-db=test
  replicate-ignore-db=mysql
  replicate-ignore-db=information_schema
  relay-log=db-server-2-relay-bin
  log-slave-updates
  ===设置备份点===
  mysql -uroot -p
  slave stop;
  change master to master_host='192.168.10.243',master_user='pinla_backup',master_password='pinla2012';
  slave start;
  show slave status\G
  ==================heartbeat配置===========================
  vip:192.168.10.244
  master1-eth3:192.168.10.240
  #master1-eth2:10.10.10.100
  master1-eth2:192.168.10.242
  #master2-eth0:10.10.10.200
  master2-eth0:192.168.10.243
  master2-eth1:192.168.10.245
  1.双master服务器网卡设置
  使用网线直接连接两个master,并且配置两个服务器的IP
  2.安装HA与HA依赖包
  yum install libnet heartbeat* heartbeat-devel heartbeat-pils heartbeat-stonith heartbeat-ldirectord ipvsadm
  cp /usr/share/doc/heartbeat-2.1.3/authkeys /etc/ha.d/
  cp /usr/share/doc/heartbeat-2.1.3/haresources /etc/ha.d/
  cp /usr/share/doc/heartbeat-2.1.3/ha.cf /etc/ha.d/
  ==配置心跳加密方式:authkeys==
  vim /etc/ha.d/authkeys
  auth 1
  1 crc
  chmod 600 /etc/ha.d/authkeys
  ==配置心跳的监控:haresources==
  vim /etc/ha.d/haresources
  追加
  PL100 IPaddr::192.168.10.245/16/eth0 ipvsadm mysqld
  #PL100 为主主机名(可以使用uname -n获得) ipvsadm mysqld为启动心跳同时启动该服务。
  #IPaddr:: 为VIP
  mkdir -p /var/log/ha_log
  chmod 777 /var/log/ha_log
  ==配置心跳的配置文件:ha.cf==
  vi /etc/ha.d/ha.cf
  #ha的日志文件记录位置
  logfile /var/log/ha_log/ha-log.log
  #使用eth3做心跳监测
  bcast eth3
  #设定心跳(监测)时间时间为2秒
  keepalive 2
  warntime 10
  deadtime 30
  initdead 120
  hopfudge 1
  #使用udp端口694进行心跳监测
  udpport 694
  #开启为主节点恢复后自动强占资源(该模式很有可能出现脑裂)
  auto_failback off
  #节点1,必须要与 uname -n 指令得到的结果一致。
  node PL100
  #节点2
  node PL102
  ping 192.168.10.1 #通过ping网关来监测心跳是否正常
  #respawn hacluster /usr/lib/heartbeat/ipfail
  #apiauth ipfail gid=root uid=root
  debugfile /var/log/ha_log/ha-debug.log
  #创建日志文件
  touch /var/log/ha_log/ha-log.log
  ==设置ipvsadm的巡回监测==
  ipvsadm -A -t 192.168.10.244:3306 -s rr
  ipvsadm -a -t 192.168.10.244:3306 -r 10.10.10.100:3306 -m
  ipvsadm -a -t 192.168.10.244:3306 -r 10.10.10.200:3306 -m
  ipvsadm --save
  执行后则开始进行监测
  ipvsadm --list
  service heartbeat start
  chkconfig --add heartbeat
  ==防火墙设置==
  iptables -I INPUT -p udp --dport 694 -j ACCEPT
  =======到此为止以上为mysql+hearbeat配置========
  三.nginx+php
  1.php配置
  #PHP 5.3.3开始已经集成了PHP-FPM
  ==依赖环境安装==
  tar zxvf libiconv-1.14.tar.gz
  cd libiconv-1.14
  ./configure --prefix=/usr/local
  make
  make install
  cd ..
  tar zxvf libmcrypt-2.5.8.tar.gz
  cd libmcrypt-2.5.8
  ./configure
  make;make install
  cd ./libltdl
  ./configure --enable-ltdl-install
  make;make install
  cd ../..
  tar zxvf mhash-0.9.9.9.tar.gz
  cd mhash-0.9.9.9
  ./configure
  make;make install
  yum install libxml2 libxml2-devel openssl openssl-devel curl curl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel openldap openldap-devel mysql-devel
  ==php安装==
  ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/
  ln -s /usr/local/mysql-5.5.27/lib/libmysqlclient.so.18  /usr/lib64/
  chmod 755 /usr/lib64/
  tar zxvf php-5.3.16.tar.gz
  cd php-5.3.16
  ./configure --prefix=/usr/local/php-5.3.16 --with-config-file-path=/usr/local/php-5.3.16/etc  --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath  --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex  --enable-fpm  --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --with-xmlrpc --enable-zip --enable-soap --with-pdo_mysql --with-mysql=/usr/local/mysql-5.5.27/ --with-mysqli
  make ZEND_EXTRA_LIBS='-liconv'
  make install
  #make时若报错make: *** [sapi/fpm/php-fpm] Error 1
  #找到Makefile文件,在EXTRA_LIBS最后添加-lresolv
  EXTRA_LIBS = -lcrypt -lcrypt -lrt -lmysqlclient -lrt -lm -ldl -lnsl -lrt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lxml2 -lz -lm -lxml2 -lz -lm -lxml2 -lz -lm -lcrypt -lresolv
  cp php.ini-production /usr/local/php-5.3.16/etc/php.ini
  #因为php5.3开始自带fpm,使用自带的管理脚本
  cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
  chmod +x /etc/init.d/php-fpm
  #设置开机自启动
  chkconfig php-fpm on
  cp /usr/local/php-5.3.16/etc/php-fpm.conf.default /usr/local/php-5.3.16/etc/php-fpm.conf
  vim /usr/local/php-5.3.16/etc/php-fpm.conf
  追加
  pid = run/php-fpm.pid
  修改
  user = nobody
  group = nobody
  为
  user = www
  group = www
  ==安装eAccelerator==
  #如需要安装则进行安装,其起到php程序的加速
  tar zxvf eaccelerator-eaccelerator-42067ac.tar.gz
  cd eaccelerator-eaccelerator-42067ac
  /usr/local/php-5.3.16/bin/phpize
  #若报错
  Cannot find autoconf.需安装autoconf
  yum install autoconf
  ./configure --enable-eaccelerator=shared --with-php-config=/usr/local/php-5.3.16/bin/php-config
  make;make install
  vim /usr/local/php-5.3.16/etc/php.ini
  追加
  extension_dir = "/usr/local/php-5.3.16/lib/php/extensions/no-debug-non-zts-20090626/"
  cgi.fix_pathinfo=0
  mkdir -p /usr/local/eaccelerator_cache
  vi /usr/local/php-5.3.16/etc/php.ini
  追加
  [eaccelerator]
  zend_extension="/usr/local/php-5.3.16/lib/php/extensions/no-debug-non-zts-20090626/eaccelerator.so"
  eaccelerator.shm_size="64"
  eaccelerator.cache_dir="/usr/local/eaccelerator_cache"
  eaccelerator.enable="1"
  eaccelerator.optimizer="1"
  eaccelerator.check_mtime="1"
  eaccelerator.debug="0"
  eaccelerator.filter=""
  eaccelerator.shm_max="0"
  eaccelerator.shm_ttl="3600"
  eaccelerator.shm_prune_period="3600"
  eaccelerator.shm_only="0"
  eaccelerator.compress="1"
  eaccelerator.compress_level="9"
  ==安装APC==
  tar zxvf APC-3.1.9.tgz
  cd APC-3.1.9
  /usr/local/php-5.3.16/bin/phpize
  ./configure --with-php-config=/usr/local/php-5.3.16/bin/php-config
  make;make install
  2.nginx安装
  yum install pcre-devel
  groupadd www
  useradd -s /sbin/nologin -g www www
  mkdir -p /data/wwwroot
  chmod +w /data/wwwroot
  mkdir -p /data/nginxlogs
  chmod 755 /data/nginxlogs
  chown -R www:www /data/wwwroot
  tar zxvf nginx-1.2.3.tar.gz
  cd nginx-1.2.3
  ./configure --user=www --group=www --prefix=/usr/local/nginx-1.2.3 --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module  --with-pcre
  make;make install
  mkdir /usr/local/nginx-1.2.3/conf/vhost/
  rm -f /usr/local/nginx-1.2.3/conf/nginx.conf
  ==基本的nginx配置==
  vim /usr/local/nginx-1.2.3/conf/nginx.conf
  参照nginx.conf
  ==vhost设置===
  cd /usr/local/nginx-1.2.3/conf/vhost
  vim www.pinla.com.conf
  参照nginx_vhost_www.pinla.com.conf
  ==为不同的vhost创建目录==
  mkdir -p /data/wwwroot/www.pinla.com/
  ==创建管理脚本==
  vim /etc/init.d/nginx
  内容详见nginx_管理脚本.sh中
  chmod +x /etc/init.d/nginx
  chkconfig nginx on
  ==========================环境说明=================================
  直接输入以下命令,会得到相应的结果
  service nginx restart #重启nginx
  service mysqld restart #重启mysql
  service php-fpm restart #重启php-fpm
  service php-fpm stop #停止php-fpm
  service php-fpm start #启动php-fpm
  各站点的根目录是 /data/wwwroot/
  应用的目录是 /usr/local/
  各配置文件的存放位置是:
  php: /usr/local/php-5.3.16/etc/
  mysql: /etc/
  nginx: /usr/local/nginx-1.2.3/conf/
  ==安装zend扩展==
  tar zxvf ZendFramework-1.12.0.tar.gz
  mkdir /usr/local/nginx-1.2.3/Library
  mv ZendFramework-1.12.0/library/ /usr/local/nginx-1.2.3/Library/
  vim /usr/local/php-5.3.16/etc/php.ini
  修改为
  include_path = ".:/php/includes:/usr/local/nginx-1.2.3/Library:/data/wwwroot/www.pinla.com/Library"
  ==redis安装配置==
  tar zxvf redis-2.4.16.tar.gz
  cd redis-2.4.16
  make;make install
  cp redis.conf /etc/
  vim /etc/redis.conf
  修改daemonize no为daemonize yes
  #开启
  redis-server /etc/redis.conf
  echo "redis-server /etc/redis.conf ">>/etc/rc.local
  echo "vm.overcommit_memory = 1" >>/etc/sysctl.conf
  sysctl -p
  #测试
  redis-benchmark
  #登陆
  redis-cli
  ==安装和配置redis-php的扩展==
  unzip  nicolasff-phpredis-2.2.2-38-g6f7087f.zip
  cd nicolasff-phpredis-6f7087f/
  /usr/local/php-5.3.16/bin/phpize
  ./configure --with-php-config=/usr/local/php-5.3.16/bin/php-config
  make;make install
  #安装完成后会输出类似下边的
  #/usr/local/php-5.3.16/lib/php/extensions/no-debug-non-zts-20090626/
  #若extension_dir = "/usr/local/php-5.3.16/lib/php/extensions/no-debug-non-zts-20090626/"已在PHP目录中则无需添加,若无需添加
  vim /usr/local/php-5.3.16/etc/php.ini
  在PHP扩展目录中追加
  extension = redis.so
  ==安装配置sphinx==
  yum install  automake libtool
  【mmseg】
  tar zxvf coreseek-4.1-beta.tar.gz
  cd coreseek-4.1-beta/mmseg-3.2.14
  ./configure --prefix=/usr/local/mmseg3
  make;make install
  提示config.status: error: cannot find input file: src/Makefile.in
  执行以下命令:
  aclocal
  libtoolize --force
  automake --add-missing
  autoconf
  autoheader
  make clean
  【csft】
  cd coreseek-4.1-beta/csft-4.1
  sh buildconf.sh
  ./configure --prefix=/usr/local/sphinx --without-unixodbc --with-mmseg --with-mmseg-includes=/usr/local/mmseg3/include/mmseg/ --with-mmseg-libs=/usr/local/mmseg3/lib
  make;make install
  vim /usr/local/sphinx/etc/pinla.conf
  [测试]
  cd ../testpack
  cat var/test/test.xml
  /usr/local/mmseg3/bin/mmseg -d /usr/local/mmseg3/etc var/test/test.xml
  #生成索引
  /usr/local/sphinx/bin/indexer --config  /usr/local/sphinx/etc/pinla.conf --all
  #启动服务
  /usr/local/sphinx/bin/searchd --config /usr/local/sphinx/etc/pinla.conf
  #网络索引测试
  /usr/local/sphinx/bin/search --config /usr/local/sphinx/etc/pinla.conf
  #crontab -e    加入crontab五分钟重新索引
  */5 * * * */usr/local/sphinx/bin/indexer --config /usr/local/sphinx/etc/pinla.conf --rotate --all
  ==安装php sphinx client 扩展==
  tar zxvf sphinx-2.0.5-release.tar.gz
  cd ./sphinx-2.0.5-release/api/libsphinxclient/
  #vim sphinxclient.c
  找到
  void sock_close ( int sock );
  改为
  static void sock_close ( int sock );
  ./configure --prefix=/usr/local/sphinxclient
  make&&make install
  tar zxvf sphinx-1.2.0.tgz
  cd sphinx-1.2.0
  /usr/local/php-5.3.16/bin/phpize
  ./configure --with-php-config=/usr/local/php-5.3.16/bin/php-config --with-sphinx=/usr/local/sphinxclient
  make&&make install
  #安装完成后会提示模块已写入的路径
  /usr/local/php-5.3.16/lib/php/extensions/no-debug-non-zts-20090626/
  vim /usr/local/php-5.3.16/etc/php.ini
  追加
  extension = sphinx.so
  #重启PHP
  service php-fpm restart
  #创建主索引
  /usr/local/sphinx/bin/indexer shop  --config /usr/local/sphinx/etc/pinla.conf --rotate
  #创建增量索引:
  /usr/local/sphinx/bin/indexer delta --config /usr/local/sphinx/etc/pinla.conf  --rotate
  #合并
  /usr/local/sphinx/bin/indexer --merge shop delta -c /usr/local/sphinx/etc/pinla.conf --rotate
  #查询索引
  /usr/local/sphinx/bin/search --config /usr/local/sphinx/etc/pinla.conf  -a 米娜
  #计划任务
  */5 * * * * /usr/local/sphinx/bin/indexer delta --config /usr/local/sphinx/etc/pinla.conf --rotate;/usr/local/sphinx/bin/indexer --merge shop delta -c /usr/local/sphinx/etc/pinla.conf --rotate
  30 2 * * * /usr/local/sphinx/bin/indexer shop  --config /usr/local/sphinx/etc/pinla.conf --rotat
  ====安装配置fastdfs_client======
  tar zxvf FastDFS_v3.11.tar.gz
  cd FastDFS
  ./make.sh C_INCLUDE_PATH=/usr/local/libevent/include LIBRARY_PATH=/usr/local/libevent/lib
  ./make.sh install
  cd ./php_client
  /usr/local/php-5.3.16/bin/phpize
  ./configure --with-php-config=/usr/local/php-5.3.16/bin/php-config
  make&&make install
  mkdir -p /data/fdfs_data
  vim /usr/local/php-5.3.16/etc/php.ini
  追加
  extension=fastdfs_client.so
  fastdfs_client.base_path = /tmp
  fastdfs_client.connect_timeout = 2
  fastdfs_client.network_timeout = 60
  fastdfs_client.log_level = info
  fastdfs_client.log_filename =
  fastdfs_client.http.anti_steal_secret_key =
  fastdfs_client.tracker_group_count = 1
  fastdfs_client.tracker_group0 = /etc/fdfs/client.conf
  vim /etc/fdfs/client.conf
  connect_timeout=30
  network_timeout=60
  base_path=/data/fdfs_data
  tracker_server=192.168.10.225:22122
  log_level=info
  http.tracker_server_port=8080
  九.haproxy配置
  tar zxvf haproxy-1.4.21.tar.gz
  cd haproxy-1.4.21
  uname -a //查看linux内核版本
  make TARGET=linux26 PREFIX=/usr/local/haproxy-1.4.21
  make install PREFIX=/usr/local/haproxy-1.4.21
  ==配置haproxy==
  mkdir -p /usr/local/haproxy-1.4.21/conf
  vim /usr/local/haproxy-1.4.21/conf/haproxy.conf
  #参考haproxy.conf
  ==配置haproxy服务脚本==
  mkdir /usr/local/haproxy-1.4.21/init.d/
  mkdir -p /usr/local/haproxy-1.4.21/run/
  #开启
  /usr/local/haproxy-1.4.21/sbin/haproxy -f /usr/local/haproxy-1.4.21/conf/haproxy.conf
  或者脚本
  vim /usr/local/haproxy-1.4.21/init.d/haproxy
  #参考haproxy_启动脚本.sh
  chmod +x /usr/local/haproxy-1.4.21/init.d/haproxy
  echo "net.ipv4.ip_nonlocal_bind=1" >>/etc/sysctl.conf
  sysctl -p
  ==启动haproxy==
  /usr/local/haproxy/init.d/haproxy start
  ==配置haproxy日志==
  mkdir /usr/local/haproxy/log
  touch /usr/local/haproxy/log/haproxy.log
  vim /etc/syslog.conf
  追加
  SYSLOGD_OPTIONS="-m 0 -r -x"
  local3.*                                                /usr/local/haproxy/log/haproxy.log
  /etc/init.d/syslog restart
  /usr/local/haproxy/init.d/haproxy stop
  /usr/local/haproxy/init.d/haproxy start
  =====varnish安装与配置========
  yum install pkgconfig
  tar zxvf varnish-3.0.2.tar.gz
  cd varnish-3.0.2
  ./configure --prefix=/usr/local/varnish-3.0.2
  make && make install
  cp redhat/varnish.initrc /etc/init.d/varnish
  cp redhat/varnish.sysconfig /etc/sysconfig/varnish
  cp redhat/varnish_reload_vcl /usr/local/varnish-3.0.2/bin/
  mv   /usr/local/varnish-3.0.2/bin/varnish_reload_vcl /usr/local/varnish-3.0.2/bin/varnish_reload_vcl_back
  vim /usr/local/varnish-3.0.2/bin/varnish_reload_vcl
  #参照varnish_reload_vcl_config
  groupadd varnish
  useradd -s /bin/false -M varnish -g varnish
  mkdir /data/varnish_logs /data/varnish_cache
  chown -R varnish.varnish /data/varnish_logs
  chown -R varnish.varnish  /data/varnish_cache
  chmod +w /data/varnish_cache
  chmod +w /data/varnish_logs
  vim /usr/local/varnish-3.0.2/etc/varnish/pinla.vcl
  #参照pinla_vcl_config
  ======服务启动=======
  /usr/local/varnish-3.0.2/sbin/varnishd -n /data/varnish_cache -f /usr/local/varnish-3.0.2/etc/varnish/pinla.vcl -a 0.0.0.0:8080 -s file,/data/varnish_cache/varnish_cache.data,50G -g varnish -u varnish -w30000,51200,50 -T 0.0.0.0:3000 -p thread_pool_min=200 -p thread_pool_max=4000 -p thread_pools=4 -p thread_pool_add_delay=2 -p listen_depth=4096 -p lru_interval=20
  ==配置启动脚本==
  mv /etc/sysconfig/varnish /etc/sysconfig/varnish_back
  vim /etc/sysconfig/varnish
  #参照varnish_config
  vim /etc/init.d/varnish
  修改
  exec="/usr/local/varnish-3.0.2/sbin/varnishd"
  reload_exec="/usr/local/varnish-3.0.2/bin/varnish_reload_vcl"
  chmod 755 /etc/init.d/varnish
  #开启
  service varnish start
  service varnish stop
  ===配置varnish日志脚本===
  #需要rotatelogs工具(可通过安装apache获得)
  yum install httpd
  vim /etc/init.d/varnishncsa
  #日志脚本可参考varnishncsa.txt
  chmod 755 /etc/init.d/varnishncsa
  #开启/关闭日志
  /etc/init.d/varnishncsa start
  /etc/init.d/varnishncsa stop
  #不用脚本的方式
  #启动varnishncsa用来将Varnish访问日志写入日志文件
  /usr/local/varnish-3.0.2/bin/varnishncsa -n /data/varnish_cache -w /data/varnish_logs/varnish.log &
  #查看varnish缓存状态及命中率
  /usr/local/varnish-3.0.2/bin/varnishstat -n /data/varnish_cache
  #基于端口的管理varnish
  telnet 127.0.0.1 3000
  =========nfs安装配置============
  mkdir /data/static
  mkdir /data/wwwroot
  echo "/data/static  *(rw,sync,no_root_squash)" >> /etc/exports
  #开启NFS和portmap服务
  service nfs start
  service portmap start
  chkconfig --level 3 nfs  on
  chkconfig --level 3 portmap on
  #客户端挂载
  #开启portmap服务
  service portmap start
  如果portmap服务未启,则在mount时会报错:
  chkconfig --level 3 portmap on
  mkdir /data/static
  mount  -t nfs 192.168.10.225:/data/static  /data/static/
  #加入rc.loacl
  echo "mount  -t nfs 192.168.10.225:/data/static  /data/static/">>/etc/rc.local
  ===========inotify+rsync=========
  #NFS服务器
  #查看是否支持,若存在该目录则支持
  ll /proc/sys/fs/inotify
  tar zxvf inotify-tools-3.14.tar.gz
  cd inotify-tools-3.14
  ./configure --prefix=/usr/local/inotify-3.14
  make
  make install
  #生成SSH KEY
  ssh-keygen -t rsa
  scp ~/.ssh/id_rsa.pub root@192.168.10.241:~/.ssh/
  scp ~/.ssh/id_rsa.pub root@192.168.10.240:~/.ssh/
  #客户机
  cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
  service sshd restart
  #NFS服务器端
  #编写脚本
  mkdir /data/shell
  vim /data/shell/inotifyrsync.sh
  #脚本内容详见inotifyrsync.sh文件内
  chmod +x /data/shell/inotifyrsync.sh
  #将脚本放至后台运行
  nohup /data/shell/inotifyrsync.sh &
  #使脚本开机自动运行
  echo "/data/shell/inotifyrsync.sh &" >> /etc/rc.local
  =======nginx添加IP库=====
  yum install *GeoIP*
  或
  tar zxvf GeoIP-1.4.8.tar.gz
  cd GeoIP-1.4.8
  ./configure
  make;make install
  #编译nginx的扩展
  cd nginx-1.2.3
  ./configure --user=www --group=www --prefix=/usr/local/nginx-1.2.3 --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module  --with-pcre --with-http_geoip_module
  make;make install
  gunzip GeoIP.dat.gz
  gunzip GeoLiteCity.dat.gz
  mv GeoIP.dat /usr/local/nginx-1.2.3/conf/
  mv GeoLiteCity.dat /usr/local/nginx-1.2.3/conf/
  vim  /usr/local/nginx-1.2.3/conf/nginx.conf
  在http中追加
  geoip_country  GeoIP.dat;
  geoip_city     GeoLiteCity.dat;
  在server中追加
  if ( $http_cookie !~* PL_IPCITY ) {
  add_header Set-Cookie "PL_IPCITY=$geoip_city;Domain=.pinla.com;Path=/" ;
  }
  fastcgi_param PL_IPCITY $geoip_city;


运维网声明 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-631953-1-1.html 上篇帖子: 谈谈Memcached与Redis(三) 下篇帖子: redis应用
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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