简单的负载均衡站点配置资料从网上收集的,但是有实测。
给新手用的,老手可以参考并完善一下。
一、实现目标:负载均衡,数据热备二、网络top图Server1 192.168.94.236Server2 192.168.94.237Server3 192.168.94.238三、S erver2 Server3基本安装(Server1 不需要安装LNMP包)1、操作系统安装CentOS 5.5 32位操作系统。
2、磁盘分区/boot 100M /swat 4G /home 20G /usr/local 60G /web3、安装后注意事项A、建立一个普通权限的用户因为root用户对系统具有全权的操作权限,为了避免一些失误的操作,在一般情况下,以一般用户登录系统,必要的时候需要root操作权限时,再通过“su -”命令来登录为root用户进行操作。
useradd anniuserpasswd anniuserusermod -G wheel anniuser修改pam配置,使非wheel组用户不能使用su命令登录为root:vi /etc/pam.d/su找到#auth required /lib/security/$ISA/pam_wheel.so use_uid将行首的# 去掉。
然后vi /etc/login.defs在文件末尾加上SU_WHEEL_ONLY yesB、root邮件的转送Vi /etc/aliasesC、停止不必要的服务[root@ ~]# /etc/rc.d/init.d/cups stop← 停止打印服务Stopping cups: [ OK ]← 停止服务成功,出现“OK”[root@ ~]# chkconfig cups off← 禁止打印服务自动启动[root@ ~]# chkconfig --list cups← 确认打印服务自启动设置状态cups 0:off 1:off 2:off 3:off 4:off 5:off 6:off← 0-6都为off的状态就OK(当前打印服务自启动被禁止中)除了以下服务以外,其他服务默认的都可以采用刚才的方法关闭,根据需要自己选择:atdcrondirqbalancelvm2-monitormicrocode_ctlnetworksendmailsshdsyslogD、关闭SELinuxvi /etc/selinux/config将其中的SELINUX=enforcing改为SELINUX=disabledE、安装sudo工具yum install sudo -y安装好了以后,修改sudo的配置vi /etc/sudousers将# %wheel ALL=(ALL) NOPASSWORD:ALL去掉前面的# ,然后保存文件。
这样修改了以后,只有所有属于wheel组的用户能执行sudo命令,并且执行sudo命令时只需要输入自己的密码即可。
F、修改SSH配置vi /etc/ssh/sshd_configPort 22 #修改默认端口#ServerKeyBits 768改为ServerKeyBits 1024#增加ServerKey的强度找到#PermitRootLogin Yes改为PermitRootLogin no #不允许root用户直接登录#PermitEmptyPasswords no #禁止空密码登录去掉前面的#全部修改完了以后,重启服务器G、定义yum非官方库(使用网易163的yum库更新)先关闭fastestmirror“vi /etc/yum/pluginconf.d/fastestmirror.conf”and set “enable=0″cd /etc/yum.repos.d/wget /.help/CentOS-Base-163.repoyum makecache //生成缓存yum –y updateH、定时校对时间crontab –e00 00 * * * ntpdate 210.72.154.44 #每日24点校准时间,频率自己设置4、LNMP安装安装步骤:1、下载LNMP一键安装包:wget -c /lnmp/lnmp0.5.tar.gz,如果使用完整版wget -c /lnmp/lnmp0.5-full.tar.gz,执行上述命令后LNMP一键安装包就会被下载到服务器上。
2、解压LNMP一键安装包:∙执行tar zxvf lnmp0.5.tar.gz 或者tar zxvf lnmp0.5-full.tar.gz 就会将LNMP一键安装包解压缩。
3、安装步骤∙下载版执行命令cd lnmp0.5/ ,完整版执行命令:cd lnmp0.5-full/∙然后再执行./centos.sh ,输入要绑定的域名,回车,再输入要设置的MySQL root的密码,再次回车确认。
程序会自动安装编译Nginx、PHP、MySQL、phpMyAdmin、Zend这几个软件。
phpinfo : http://前面输入的域名或IP/phpinfo.phpphpMyAdmin : http://前面输入的域名或IP/phpmyadmin/探针: http://前面输入的域名或IP/p.phpMySQL root密码:如果不输入直接回车为root,否则为你输入的密码。
LNMP相关目录:mysql : /usr/local/mysqlphp : /usr/local/phpnginx : /usr/local/nginx网站目录: /home/wwwroot基本安装至此完成五、配置文件实时同步配置说明文件实时同步软件:sersync实现过程:在server3上配置rsync服务器(serync客户端)/etc/rsyncd.confuid = rootuse chroot = nomax connections = 20pid file = /var/run/rsyncd.pidlock file = /var/run/rsync.locklog file = /var/log/rsyncd.log[web_tongbu] #模块名称path = /home/wwwroot/anni/ #同步目录ignore errorsread only = no #hosts allow = 192.168.94.237/24hosts deny = 0.0.0.0/32auth users = rootsecrets file = /etc/rsyncd.pas#exclude = xxx/ yyy/ #把xxx和yyy目录排除在外[nginx_tongbu]path = /usr/local/nginx/conf/read only = nohosts allow = 192.168.94.237/24hosts deny = 0.0.0.0/32auth users = rootsecrets file = /etc/rsyncd.pas#exclude = xxx/ yyy/ #把xxx和yyy目录排除在外Pass文件配置/etc/rsyncd.pas (名字随便) 格式:用户名:密码比如root:12345并将rsyncd.pas权限设置为600chmod 600 /etc/rsyncd.pas开启rsyncrsync –daemon加入开机启动echo "rsync --daemon" >> /etc/rc.d/rc.local配置sersync服务端(rsync客户端)rsync pass 文件配置/etc/rsyncd.pas 格式:密码比如:12345 (这里的密码对应rsync服务器配置的用户密码)并将rsyncd.pas权限设置为600chmod 600 /etc/rsyncd.passersync 安装配置(安装于server2)新版本下载地址/p/sersync/downloads/list解压sersync后生成GNU-Linux-x86文件夹,以当前最新2.5版本为例:tar zxf sersync2.5_32bit_binary_stable_final.tar.gzmv GNU-Linux-x86 sersynccd sersyncvi confxml.xml修改如下两部分:<sersync><localpath watch="/home/tongbu"><remote ip="192.168.94.238" name="web_tongbu"/></localpath>表明要将主服务器上本地的/home/tongbu 路径下的文件,同步到远程服务器192.168.94.238 上的web_tongbu 模块。
<rsync><commonParams params="-artuz"/><auth start="true" users="root" passwordfile="/etc/rsyncd.pas"/><userDefinedPort start="false" port="874"/><!-- port=874 --><timeout start="false" time="100"/><!-- timeout=100 --><ssh start="false"/>表示使用rsync密码认证方式启动sersync. /sersync2 -r -d /usr/local/sersync/confxml.xml加入开机自启动echo "/usr/local/sersync/sersync2 -r -d -o /usr/local/sersync/confxml.xml" >> /etc/rc.d/rc.local这里参数-o表示指定配置文件为/usr/local/sersync/confxml.xml实时同步配置完成Mysql 主主复制配置1、创建同步用户:Server 2:grant replication slave,file on *.* to 'replication'@'192.168.94.238' identified by '123456';flush privileges;Server 3:grant replication slave,file on *.* to 'replication'@'192.168.94.237' identified by '123456';flush privileges;2、修改mysql配置文件/etc/fServer 2:log-bin=mysql-binserver-id = 1binlog-do-db=testbinlog-ignore-db=mysqlreplicate-do-db=testreplicate-ignore-db=mysqllog-slave-updatesslave-skip-errors=allsync_binlog=1auto_increment_increment=2auto_increment_offset=1Server 3:log-bin=mysql-binserver-id = 2binlog-do-db=testbinlog-ignore-db=mysqlreplicate-do-db=testreplicate-ignore-db=mysqllog-slave-updatesslave-skip-errors=allsync_binlog=1auto_increment_increment=2auto_increment_offset=23、重启mysql服务后,进入mysql命令行,执行操作如下:Server A:mysql> flush tables with read lock;mysql> show master status\G************************** 1. row ***************************File: mysql-bin.000028Position: 866Binlog_Do_DB: testBinlog_Ignore_DB: mysql1 row in set (0.00 sec)mysql> unlock tables;mysql> stop slave;mysql> change master tomaster_host='192.168.94.238',master_user='replication',master_password='123456',master_log_file='mysql-bin.000014',master_log_pos=704;mysql> start slave;Server B:mysql> flush tables with read lock;mysql> show master status\G*************************** 1. row ***************************File: mysql-bin.000014Position: 704Binlog_Do_DB: testBinlog_Ignore_DB: mysql1 row in set (0.00 sec)mysql> unlock tables;mysql> stop slave;mysql>change master tomaster_host='192.168.94.237',master_user='replication',master_password='123456',master_log_file='mysql-bin.000028', master_log_pos=866;mysql> start slave;4、查看各服务器的状态:mysql> show slave status\G;出现:Slave_IO_Running: YesSlave_SQL_Running: Yes则状态正常,直接测试数据能否同步就OK了!mysql-mmm高可用配置(及mysql自动切换)MMM简介:MMM即Master-Master Replication Manager for MySQL(mysql主主复制管理器)关于mysql主主复制配置的监控、故障转移和管理的一套可伸缩的脚本套件(在任何时候只有一个节点可以被写入),这个套件也能对居于标准的主从配置的任意数量的从服务器进行读负载均衡,所以你可以用它来在一组居于复制的服务器启动虚拟ip,除此之外,它还有实现数据备份、节点之间重新同步功能的脚本。