准备工作
准备四台虚拟机:一台Haproxy服务器(192.168.18.129)
两台web服务器 (192.168.18.130 192.168.18.136)
一台memcache和NFS服务器 (192.168.18.137)
关闭防火墙和SELinux
service iptables stop
setenforce 0
LNMP服务器上的操作:
1.安装Haproxy
yum -y install haproxy
2.编辑Haproxy的配置文件
vim /etc/haproxy/haproxy.cfg
#---------------------------------------------------------------------
frontend ds *:80
default_backend webs
#---------------------------------------------------------------------
# static backend for serving up images, stylesheets and such
#---------------------------------------------------------------------
backend webs
balance roundrobin
server web1 192.168.18.130:80 check
server web2 192.168.18.136:80 check
#---------------------------------------------------------------------
3.重启Haproxy
service haproxy restart
两台web服务器上的操作
1.安装nginx
tar -zxf nginx-1.16.1.tar.gz //解压nginx的安装包
cd nginx-1.16.1
yum -y install gcc gcc-c++ zlib-devel pcre-devel //下载依赖
./configure && make && make install //检查环境 && 编译 && 编译安装
2.启动nginx
/usr/local/nginx/sbin/nginx
3.
yum -y install php php-mysql php-gd php-fpm
4.编辑nginx的配置文件
vim /usr/local/nginx/conf/nginx.conf
######################################################################
location / {
root html;
index index.php index.html index.htm;
}
..........
location ~ \.php$ {
root /usr/local/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
#####################################################################
5.重载nginx的配置文件
/usr/local/nginx/sbin/nginx -s reload
6.在nginx根目录下编辑测试页面
cd /usr/local/nginx/html
vim info.php
#################
<h1>web1</h1>
<?php
phpinfo();
?>
################
7.开启php-fpm
service php-fpm start
chkconfig php-fpm on //讲php-fpm设置为开机自启
8.查找memcache的依赖并安装
yum search memcached
yum -y install
9.重启php-fpm
service php-fpm restart
10.编辑php-fpm的配置文件
vim /etc/php-fpm.d/www.conf
######################################################
php_value[session.save_handler] = memcache
php_value[session.save_path] = tcp://192.168.18.137:11211
######################################################
11.再次重启php-fpm
service php-fpm restart
12.安装
yum -y install rpcbind
yum -y install nfs-utils
13.启动
service rpcbind start //一定要先开启这个
service nfs start
14.查看nfs服务器共享目录列表
showmount -e 192.168.18.137
15.
暂时的挂载目录重启后就会丢失
mount -t nfs 192.168.18.137:/opt/html /usr/local/nginx/html/
永久挂载目录
vim /etc/fstab
########################################################
192.168.18.137:/opt/html /usr/local/nginx/html nfs defaults 0 0
要挂载的设备 挂载点 类型
16.可以重启虚拟机 reboot 使用mount命令查看是否挂载成功
17.上传电商包至/usr/local/nginx/html
unzip tinyshopV2.5_data.zip //解压
chmod -R 777 html/ //给与权限
memcache上的操作
1.安装memcache
yum -y install memcached
2.安装
yum -y install rpcbind
yum -y install nfs-utils
3.启动
service rpcbind start //一定要先开启这个
service nfs start
4.创建共享文件夹
mkdir /opt/html
vim /etc/exports
###############################
/opt/html 192.168.18.0/24(rw,no_root_squash)
###############################
5.exportfs -rv
6.cd /opt/html
vim info.php
#############################
<h1>NFS</h1>
<?php
phpinfo();
?>
#############################
测试Haproxy的服务器的IP地址/info.php
7.关于数据库的操作
yum -y install mysql mysql-server //安装数据库
service mysqld start //开启数据库
mysql //进入数据库
create database ds charset utf8; //创建数据库
grant all on ds.* to 'tom'@'%' identified by '123'; //授权用户和账号
flush privileges; //刷新权限
8.优化数据库
vim /etc/my.cfg
skip_name_resolve
service mysqld restart //重启数据库
Amoeba的读写分离
web1服务器添加了mysql-master
web2服务器添加了mysql-slave
Haproxy服务器上的操作
1.停止haproxy
service haproxy stop
(相当于做一个mysql主从复制)
web1-mysql-master服务器上的操作
1. 安装myslq
yum -y install mysql mysql-server
service mysqld start
2.回复之前备份的数据库
mysql -uroot < /usr/local/nginx/html/all.sql
3.vim /etc/my.cnf
server-id=1
log-bin=mysql-bin
web2-mysql-slave服务器上的操作
1. 安装myslq
yum -y install mysql mysql-server
service mysqld start
2.回复之前备份的数据库
mysql -uroot < /usr/local/nginx/html/all.sql
3.vim /etc/my.cnf
server-id=2
relay-bin=mysql-relay
在memcache服务器上的操作
1.备份
mysqldump -uroot -A > /opt/html/all.sql