CentOs7下Nginx+tomcat实现小集群

   废话不多说,由于本人只有三台可用服务器,所以搭建一个简单的nginx+tomcat小集群。很简单,仅供学习参考

   准备:

   三台云服务器或者三台虚拟机均可(系统为centos7),原理相近。由于在window下集群十分简单,所以演示CentOs7下实现小集群。

   选择其中两台安装web环境这个可以自行百度

   选择其中一台安装Nginx可以百度也可以参考我的博客https://mp.csdn.net/postedit/80634852

   准备成功以后进入正题。

   1.Nginx配置:将你的项目分别在装好tomcat环境的机器上部署,可以使用ip访问即可,当然不放项目也行用tomcat默认页面(最好有项目,后续会涉及到数据库主从与读写分离,redis缓存)

    在安装好Nginx的服务器上修改nginx.conf配置文件

   CentOs7下Nginx+tomcat实现小集群_第1张图片

   CentOs7下Nginx+tomcat实现小集群_第2张图片

CentOs7下Nginx+tomcat实现小集群_第3张图片

以下是上图代码段

http {
    include       mime.types;
    default_type  application/octet-stream;

    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';

    #access_log  logs/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;

    upstream tomcat_server {
        ip_hash; 
        server 47.105.163.133:8080 weight=1;
        server 47.105.175.100:8080 weight=1;
    }

    server {
        listen       80;
        server_name  fz.0791youxi.com;

        #charset koi8-r;

        #access_log  logs/host.access.log  main;

        location / {
            proxy_pass http://tomcat_server;  
            proxy_redirect default; 
         }

        #error_page  404              /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }

配置好了以后重启nginx,访问你刚才配置的域名,你就会发现nginx已经可以代理请求了。关掉其中一台tomcat,nginx还能照常访问。

     好了这一步算是完成了,很简单。

     接下来我们需要安装一个Redis来做缓存

     2.安装配置Redis:

        工作忙后续更新...

    3.配置mysql数据库主从: 

      3.1首先在两台服务器面安装好mysql数据库
      3.2配置master数据库
            编辑主master服务器配置文件/etc/my.cnf

      在[mysqld]节点下加入两句话:

      server-id=1

      log-bin=mysql-bin        #启用二进制日志;

            然后重启服务:systemctl restart mysql.service      

    登录mysql:mysql –uroot -proot

    mysql>flush tables with read lock;   #数据库锁表,不让写数据;这步骤可不做

    对于当前环境的mysql无需使用lock命令,因为没有人操作,但是生产环境中必须这样做

    mysql>show master status;    #查看MASTER状态(这两个值FilePosition与下面红色字体是对应的)其中的file就是二进制文件,position            

            记录当前操作sql的步骤数(注意一条sql包含多步,所以不是sql语句的120
     3.3配置从服务器

    修改/etc/my.cnf增加一行:

    server-id=2
        
      3.4通过mysql命令配置同步日志的指向:

           change master to master_host='172.16.0.10',master_port=3306,master_user='slave',master_password='Some_Pass1',master_log_file='mysql-bin.000003',master_log_pos=154;
            

      master_host        主服务器的IP地址(内网地址)

      master_port        主服务器的PORT端口

      master_log_file    和主服务器show master status中的File字段值相同

      master_log_pos        和主服务器show master status中的Position字段值相同

      mysql>start slave;                #stop slave;停止服务,出错时先停止,再重新配置

      mysql>show slave status\G;        #查看SLAVE状态,\G结果纵向显示。必须大写,这个命令无法再sqlyog中使用

      systemctl restart mysql.service        #重启服务   service mysqld restart

            此时主从复制就配好了,现在来测试一下吧!!自己在主库中新增一个数据库,查看从库中是否有你新建的数据库,如果有那么就成功了。

    4.数据库读写分离

       工作忙后续更新...

 

 

 

你可能感兴趣的:(架构)