Nginx使用反向代理实现负载均衡

Nginx使用反向代理实现负载均衡

yls
2019-9-20

简介

  1. 基于docker容器以及docker-compose,所以需要自学docker在linux环境的基本使用
  2. 使用两个tomcat作为负载均衡的服务端

1.使用docker拉取tomcat和nginx镜像

2.使用docker-compose创建两个tomcat服务

  1. 新建tomcat目录,在该目录下创建docker-compose.yml文件,输入如下内容:
version: '3'
services:
        tomcat1:
                image: tomcat
                container_name: tomcat1
                ports:
                        - 9090:8080

        tomcat2:
                image: tomcat
                container_name: tomcat2
                ports:
                        - 9091:8080
  1. 在该docker-compose.yml同一目录下运行如下命令启动容器(-d 表示后台运行)
docker-compose up -d
  1. 成功后查看docker容器列表
  • 命令
docker ps
  • 结果示例有tomcat1和tomcat2两个容器
CONTAINER ID        IMAGE               COMMAND             CREATED             STATUS              PORTS                    NAMES
271dd3610d1d        tomcat              "catalina.sh run"   58 minutes ago      Up 58 minutes       0.0.0.0:9091->8080/tcp   tomcat2
fa19d20f0022        tomcat              "catalina.sh run"   58 minutes ago      Up 58 minutes       0.0.0.0:9090->8080/tcp   tomcat1
  • 以交互的方式进入容器,修改首页内容,以便区分两个tomcat(下面已tomcat为例)

    • 命令
    docker exec -it fa19d20f0022 bash
    
    • 向首页追加内容
    echo "9090" >>  webapps/ROOT/index.jsp
    

3.创建nginx服务

  1. 新建nginx目录,在该目录下创建docker-compose.yml文件,输入如下内容:
version: '3.1'
services:
        nginx:
                restart: always
                image: nginx
                container_name: nginx
                ports:
                        - 81:80
                volumes:
                        - ./conf/nginx.conf:/etc/nginx/nginx.conf
  1. 由于docker-compose自动会将/conf/nginx.conf作为文件夹处理,所以需要在创建容器前,在nginx目录下,创建conf目录,在conf目录下,创建nginx.conf文件,并输入如下内容:

    user nginx;
    worker_processes 1;
    
    events {
        worker_connections 1024;
    }
    
    http {
        upstream myapp1 {
            server [服务器ip]:9090 weight=10;
            server [服务器ip]:9091 weight=10;
        }
        server {
    
            listen 80;
            server_name [服务器ip];
            location / {
                proxy_pass http://myapp1;
            }
        }
    }
    
  2. 在docker-compose.yml同一目录下运行

docker-compose up -d

4. 访问 [服务器ip]:81网址,多刷新几次,观察两个tomcat服务之间的切换

原文地址:https://www.cnblogs.com/yloved/p/11557385.html