重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

Nginx使用反向代理实现负载均衡过程解析

服务器

简介

成都创新互联公司是一家集网站建设,丹棱企业网站建设,丹棱品牌网站建设,网站定制,丹棱网站建设报价,网络营销,网络优化,丹棱网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

基于docker容器以及docker-compose,所以需要自学docker在linux环境的基本使用

使用两个tomcat作为负载均衡的服务端

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

拉取nginx参考

拉取tomcat参考

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

新建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

在该docker-compose.yml同一目录下运行如下命令启动容器(-d 表示后台运行)

docker-compose up -d

成功后查看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服务

新建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

由于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;
  }
 }
}

在docker-compose.yml同一目录下运行

docker-compose up -d

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。


文章名称:Nginx使用反向代理实现负载均衡过程解析
网站地址:http://cqcxhl.cn/article/cjisch.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP