nginx反向代理、Session Replication、mysql主从复制和备份还原

(第二十周作业)

1、搭建Tomcat集群,并通过nginx反向代理访问
需要两台虚拟机
A机:安装tomcat(端口:8080),nginx(端口80)  IP地址:192.168.183.164
B机:安装tomcat(端口:8080), IP地址:192.168.183.163
1)A机安装nginx
安装openssl库
# yum install -y openssl openssl-devel
安装gcc:
# yum install gcc-c++   
安装 PCRE   
# yum install -y pcre pcre-devel
安装zlib库 
# yum install -y zlib zlib-devel
下载nginx:  nginx-1.14.2.tar.gz
解压,编译安装
# tar -zxvf nginx-1.14.2.tar.gz
# cd nginx-1.14.2
# make && make install
启动nginx
# cd /usr/local/nginx/sbin
# ./nginx
2)A机和B机都要安装tomcat
上传apache-tomcat-8.0.47.0.tar到/root
# cd /root
#  tar -xf apache-tomcat-8.0.47.0.tar
#  mv apache-tomcat-8.0.47.0 tomcat
 启动tomcat服务
# /root/tomcat/bin/startup.sh
查看日志
# tail -f /root/tomcat/logs/catlina.out
等出现Started UP表示启动完成
关闭防火墙
# service firewalld stop
从宿主机打开浏览器来访问http://:8080,可以看到tomcat的首页
修改首页内容让AB机有区别。
3)配置nginx.conf做反向代理

#后端tomcat服务器
upstream apachetomcat  {
    #这里可以配置多台服务器和端口号
    server 192.168.184.163:8080;
    server 192.168.184.164:8080;
}
server {
    listen 80;
    server_name  192.168.184.164;
    #定义日志位置
    access_log  logs/tomcat.access.log  main;
    error_log  logs/tomcat.error.log;
     #配置站点根目录会根据完整的URI请求来映射
    root  html;
    #默认页面
    index  index.html index.htm index.jsp;
    #url映射
    location / {
        root  html;
        index  index.html index.htm;
        proxy_pass  http://apachetomcat;    #proxy_pass配置为:http:// + upstream名称       
    }
}

访问http://192.168.184.164,观察两次的tomcat页面不一样,说明一会是访问A机,一会是访问B机。

2、搭建Tomcat集群, 配置Session Replication实现Session共享
需要两台虚拟机
A机:安装tomcat(端口:8080),apache(端口80)  IP地址:192.168.183.151
B机:安装tomcat(端口:8080), IP地址:192.168.183.150
1)A机安装apache
# yum install httpd -y
# vi /etc/httpd/conf/httpd.conf

#加载以下三个模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
#在配置文件末端加入以下代码
ProxyPass /  balancer://tomcatcluster/
ProxyPassReverse /  balancer://tomcatcluster/ 
 
  BalancerMember ajp://192.168.183.151:8009 route=a 
  BalancerMember ajp://192.168.183.151:8009 route=b

2)A机B机安装tomcat
(安装步骤参考第1题的第(2)步)
3)A机B机配置tomcat
先开启网卡的组播地址
#  route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0
修改tomcat安装目录下的conf/server.xml


   


   

                 managerClassName="org.apache.catalina.cluster.session.DeltaManager"
                 expireSessionsOnShutdown="false"
                 useDirtyFlag="true"
                 notifyListenersOnReplication="true">
                    className="org.apache.catalina.cluster.mcast.McastService"
                mcastAddr="224.0.0.1"
                mcastPort="45564"
                mcastFrequency="500"
                mcastDropTime="3000"/>
                    className="org.apache.catalina.cluster.tcp.ReplicationListener"
                tcpListenAddress="192.168.183.151"
                tcpListenPort="4001"
                tcpSelectorTimeout="100"
                tcpThreadCount="6"/>
                    className="org.apache.catalina.cluster.tcp.ReplicationTransmitter"
                replicationMode="pooled"
                ackTimeout="15000"
                waitForAck="true"/>
                       filter=".*\.gif;.*\.js;.*\.jpg;.*\.png;.*\.htm;.*\.html;.*\.css;.*\.txt;"/>
    

                      tempDir="/tmp/war-temp/"
                      deployDir="/tmp/war-deploy/"
                      watchDir="/tmp/war-listen/"
                      watchEnabled="false"/>

 上文中tcpListenAddress的值,A机就写A机的IP,B机就写B机的IP。
在tomcat安装目录下webapps子目录中的应用程序里的WEB-INF目录下的web.xml


    ……
    

3、搭建mysql服务器,并实现主从复制
需要两台虚拟机
A机:安装mysql(主机),IP:192.168.183.201
B机:安装mysql(从机),IP:192.168.183.202
1)A机B机安装mysql
#yum -y install MariaDB-server MariaDB-client
2)主机A机配置
修改my.cnf配置文件
# vi /etc/my.cnf

[mysqld]
……
log-bin = master-bin
log-bin-index = master-bin.index
server-id = 1

其中log-bin表示二进制日志文件的基本名,log-bin-index 二进制索引文件的文件名,它保存了所有binlog文件的列表,server-id要唯一,master
机与slave从机ID不能相同。
保存配置文件,重启mariadb使配置生效
# systemctl restart mariadb
在主机上创建一个复制用户
# mysql -u root
mysql>CREATE USER repl_user;
mysql>GRANT REPLICATION SLAVE ON *.* TO repl_user IDENTIFIED BY 'copycopy';
3)从机B机配置
修改my.cnf配置文件
# vi /etc/my.cnf

[mysqld]
……
relay-log = slave-relay-bin
relay-log-index = slave-relay-bin.index
server-id = 2

relay-log和relay-log-index是中继日志文件和中继索引文件的设置
保存配置文件,重启mariadb使配置生效
# systemctl restart mariadb
在从机上创建和运行复制
# mysql -u root
mysql> CHANGE MASTER TO
    ->    MASTER_HOST = '192.168.183.201',
    ->    MASTER_PORT = '3306',
    ->    MASTER_USER = 'repl_user',
    ->    MASTER_PASSWORD = 'copycopy';
mysql> START SLAVE;
查看复制状态
在A机上
# mysql -u root
mysql>SHOW MASTER STATUS\G
4、搭建mysql服务器,实现数据库的备份和还原
需要一台虚拟机,在上面安装mysql
# yum -y install MariaDB-server MariaDB-client
登录数据库
# mysql -u root 
创建数据库
mysql> create databases abc;
mysql> use abc;
mysql>create table `student`(
>                `student_id`  INT UNSIGNED AUTO_INCREMENT,
>                 `name` varchar(40) not null,
>                `birthday`  DATE not null,
>                `sport`   varchar(255),
>                PRIMARY KEY ( `student_id` )
>                )ENGINE=InnoDB DEFAULT CHARSET=utf8;
插入数据
mysql>INSERT INTO    `student` ( name,birthday,sport )
>                values
>                ("zs","2000-08-07","football");
mysql>INSERT INTO    `student` ( name,birthday,sport )
>                values
>                ("ls","2000-09-07","swimming");
mysql>quit;
然后做数据库备份
#  mysqldump  -uroot   --default-character-set=UTF8  abc  >  /root/abc.sql
备份好后,把数据库删除
# mysql -u root 
mysql> drop database abc;
查看是否删除掉
mysql > show databases;
mysql>quit;
然后使用命令进行恢复
#  mysql  -uroot   --default-character-set=UTF8  abc   <  /root/abc.sql
然后登录数据库查看是否恢复成功
# mysql -u root
mysql> show databases;
mysql>use abc;
mysql>select * from student;

你可能感兴趣的:(nginx反向代理、Session Replication、mysql主从复制和备份还原)