码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2020-07-31 19:17:49      阅读:99      评论:0      收藏:0      [点我收藏+]

标签:index   bash   form   java环境   info   err   打包   list   pes   

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\renrenio-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雷同,后面就不继续测试了

 

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

标签:index   bash   form   java环境   info   err   打包   list   pes   

原文地址:https://www.cnblogs.com/reblue520/p/13411063.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!