zoukankan      html  css  js  c++  java
  • docker技术快速实现前后端项目的集群化⑩搭建renren-fast java后端基于nginx的负载均衡集群

    docker技术快速实现前后端项目的集群化⑩搭建renren-fast java后端基于nginx的负载均衡集群

    创建容器卷java01

    [root@server01 ~]# docker volume create java01

    获取centos基础镜像(如果使用java这个镜像,使用的是ubuntu系统,环境不是太熟悉,其次也没有能正常启动jar文件,改用centos作为基础镜像)

    # docker pull centos

    基于centos基础镜像创建容器名为java01,映射docker容器的磁盘为 /data/java01 挂载到java01卷上,并使用宿主机网络(--net=host)

    [root@server01 ~]# docker run -it -d --name java01 -v java01:/data/java01 --net=host centos

    依次创建新的java02/java03容器(此时我们基于centos基础镜像制作一个有jdk等基础环境的镜像,基于这个基础部署我们的应用效率会高一些)

    具体制作可以参考:基于centos的docker基础镜像制作有jdk1.8的java环境镜像https://www.cnblogs.com/reblue520/p/13408393.html

    我们基于myjava环境依次创建我们的镜像(注意修改jar包的端口)

    [root@server01 ~]# docker volume create java02

    java02

    # 基于myjava基础镜像创建名为java02的容器,并将卷java02挂载到容器的 /data/java 目录

    [root@server01 ~]# docker run -it -d --name java02 -v java02:/data/java --net=host myjava

    [root@server01 ~]# docker cp renren-fast6002.jar java02:/data/java

    [root@server01 ~]# docker exec -it java02 /bin/bash

    [root@server01 /]# source /etc/profile

    [root@server01 /]# nohup java -jar /data/java/renren-fast6002.jar

    创建java03这个容器

    打包jar

    D:java_source enrenio-renren-fast-v2.0.0>mvn clean install -Dmaven.test.skip=true

    创建后端程序java03容器,端口为6003

    [root@server01 ~]# docker volume create java03

    java03

    [root@server01 ~]# docker run -it -d --name java03 -v java03:/data/java --net=host myjava

    [root@server01 ~]# docker cp renren-fast6003.jar java03:/data/java

    [root@server01 ~]# docker exec -it java03 /bin/bash

    [root@server01 /]# source /etc/profile

    [root@server01 /]# nohup java -jar /data/java/renren-fast6003.jar

    添加nginx负载均衡

    拉取nginx镜像
    [root@server01 ~]# docker pull nginx
    
    编写nginx配置文件
    [root@server01 ~]# cat /data/nginx/backend_nginx01/nginx.conf 
    user  nginx;
    worker_processes  1;
    
    error_log  /var/log/nginx/error.log warn;
    pid        /var/run/nginx.pid;
    
    events {
            worker_connections  10240;
    }
    
    http {
        include       /etc/nginx/mime.types;
        default_type  application/octet-stream;
    
        log_format main  '$remote_addr - - [$time_local] - - "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" "$http_cookie" "$request_body" "$http_user_agent" $request_time '; 
        log_format error  '$remote_addr - - [$time_local] - - "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" $request_time '; 
    
        sendfile        on;
        tcp_nodelay    on;
    
        keepalive_timeout  90;
        client_header_buffer_size 64k;
        large_client_header_buffers 4 64k;
        proxy_connect_timeout 90s;
        proxy_read_timeout 90s;
        proxy_send_timeout 90s; 
        proxy_buffer_size 16k;
        proxy_buffers 4 32k;
        proxy_busy_buffers_size 64k;
        proxy_temp_file_write_size 64k;
        proxy_ignore_client_abort on;    
        proxy_intercept_errors on;
        gzip  on;
        gzip_min_length  1k;
        gzip_buffers     4 16k;
        gzip_http_version 1.0;
        gzip_comp_level  5;
        gzip_disable     "MSIE [1-6].";
        gzip_types text/plain text/css text/javascript application/javascript application/x-javascript text/xml application/xml application/wasm;
    
        ssi on;
        ssi_silent_errors on;
        expires 60d;
        server_names_hash_bucket_size 20480;
    
        upstream tomcat {
            server 10.11.0.206:6001;
            server 10.11.0.207:6002;
            server 10.11.0.208:6003;
        }
    
        include vhost.d/*.conf;
    
        server {
            listen       8088 ;
            server_name  10.11.0.206;
    
    
            location / {
                proxy_pass http://tomcat;
                index  index.html index.htm;
            }
    
        }
    }

    启动nginx容器

    [root@server01 ~]# docker run -it -d --name backend_nginx01 -v /data/nginx/backend_nginx01/nginx.conf:/etc/nginx/nginx.conf --net=host --privileged nginx

    通过前端负载均衡nginx进行访问

    http://10.11.0.206:8088/renren-fast/swagger/index.html

    查看nginx的日志

    [root@server01 ~]# docker logs -f backend_nginx01

    挂掉一个java容器看前端nginx负载均衡是否能正常运行,可以看到能正常运行,说明负载均衡搭建成功

    Nginx双机热备使用keepalived进行处理,与前面的keepalived雷同,后面就不继续测试了

  • 相关阅读:
    centos7下redis6的安装
    Centos MySQL 5.7安装、升级教程
    Python之SSH-paramiko模块的使用
    Linux进程管理工具之Supervisor的使用
    Python-RPC框架之-ZeroRPC和SimpleXMLRPCServer
    Django入门--简单的form验证
    redis常用指令
    MySQL自增主键ID重新排序
    批量微博删除脚本
    解决springboot2.x集成redis节点故障redisTemplate报错redis Command timed out
  • 原文地址:https://www.cnblogs.com/reblue520/p/13411063.html
Copyright © 2011-2022 走看看