Docker实现Nginx和Tomcat负载均衡

在Linux操作系统(ip:192.168.145.148)上启动三个容器,Ngnix,Tomcat1,Tomcat2容器,分别映射到主机的80,18080,28080端口;
Ngnix配置文件,监听192.168.145.148:80端口,配置转发服务器192.168.145.148:18080和192.168.145.148:28080,从而实现当访问Ngnix端口时,由Ngnix转发给两个tomcat,缓解并发访问的压力。
#可事先开通18080及28080端口

实现步骤:
1、安装docker不再描述。
2、安装Nginx镜像
    2.1 寻找nginx镜像,最好使用官方镜像,个别镜像不好拉取。也可以尝试多次拉取
        docker search nginx
    2.2 拉取ngnix镜像
        docker pull nginx
    2.3 启动容器
        #如果80端口被占用可以自行更改nginx端口
        docker run -p 80:80 --name mynginx -d nginx
    访问192.168.145.148:80进入welcome to nginx!表示nginx安装成功。
3、安装Tomcat镜像
    3.1 寻找tomcat镜像
        docker search tomcat
    3.2 拉取官方tomcat镜像
        docker pull tomcat
    3.3 启动tomcat容器
        docker run --name tomcat  -p 8080:8080 -d tomcat
        浏览器访问192.168.145.148::8080出现tomcat index.jsp说明安装启动成功。
    
4、搭建简单负载均衡实例
    4.1 docker命令准备
        docker images 查看本地有哪些镜像
        docker run –p 端口映射–v 目录挂载 –d 后台运行 镜像名
        docker exec –t –i 容器名 /bin/bash 进入正在运行的容器中
        ctrl+p, ctrlL+q实现容器shell和主机shell之间的切换
        docker cp 容器名:路径1 路径2 复制文件从容器到主机
        docker logs 容器名 查看运行日志
    4.2 tomcat容器设置
        4.2.1 准备两个jsp文件,用于区别访问的tomcat
            mkdir -p /mydata/tomcat1/ /mydata/tomcat2
            touch /mydata/tomcat1/test.jsp
            touch /mydata/tomcat2/test.jsp
            #分别为test.jsp文件写入内容
            echo '我是tomcat1' > /mydata/tomcat1/test.jsp
            echo '我是tomcat2' > /mydata/tomcat2/test.jsp
            
        4.2.2 启动第一个tomcat
            docker run --name tomcat1 -p 18080:8080 –v /mydata/tomcat1/:/usr/local/tomcat/webapps/ROOT -d tomcat
            访问192.168.145.148:18080/test.jsp 验证是否成功
        4.2.3 启动第二个tomcat    
            docker run --name tomcat2 -p 28080:8080 –v /mydata/tomcat2/:/usr/local/tomcat/webapps/ROOT -d tomcat
            访问192.168.145.148:28080/test.jsp 验证是否成功
        4.2.3 启动nginx容器
            先启动一个nginx容器,进入容器中,查看一下nginx的目录结构和配置文件nginx.conf的形式。
                        
            docker run –p 80:80 –name mynginx_test –d nginx
            
            进入到mynginx_test容器shell中:
            docker exec –t –i mynginx_test /bin/bash
            
            将mynginx_test容器中的nginx配置文件复制到主机/etc/nginx/nginx.conf下面
            docker cp mynginx_test:/etc/nginx/nginx.conf  /etc/nginx/nginx.conf
        
            编辑nginx.conf文件

                在http节点下面添加:

                #服务器的集群?

                upstream 192.168.145.148 {#服务器集群名字

                    server 192.168.145.148:18080 weight=1;#服务器配置 weight是权重的意思,权重越大,分配概率大

                    server 192.168.145.148:28080 weight=2;

                }

                #当前的Nginx的配置
                server {

                listen 80;#监听80端口,可以改成其他端口

                server_name 192.168.145.148;#当前服务的域名或ip

                location / {

                    proxy_pass http://192.168.145.148; #需和服务器集群名字保持一致
                    proxy_redirect default;

                }

                }
                
            启动nginx容器,并将上述配置文件挂载到/etc/nginx/nginx.conf目录下

            docker run -p 80:80 --name mynginx -v /etc/nginx/nginx.conf:/etc/nginx/nginx.conf -d nginx  

            此时浏览器访问192.168.145.148:80/test.jsp
        
        
        
        
        
        
        

你可能感兴趣的:(Linux)