阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Docker+Nginx+Tomcat7配置简单的负载均衡

264次阅读
没有评论

共计 3593 个字符,预计需要花费 9 分钟才能阅读完成。

本文介绍在 Docker 上配置简单的负载均衡,宿主机为 Ubuntu 14.04.2 LTS,两个 CentOS 容器,宿主机安装 Nginx,两台容器安装 tomcat7。

结构如下:

Docker+Nginx+Tomcat7 配置简单的负载均衡

此方案的原理是将宿主机的端口和 docker 容器的端口做一个映射(即访问宿主机的某端口会映射到 docker 容器对应的端口),然后在宿主机通过配置 Nginx,即可达到访问宿主机的某端口,按规则分配到指定的服务地址,即完成了负载均衡。

配置步骤

1. 准备宿主机,宿主机是 Ubuntu 14.04.2 LTS,安装在 Vmware 中,具体安装方式不做赘述。

2. 在宿主机中安装 Nginx,直接用如下命令即可。

sudo apt-get install nginx

安装完成后,可以查看 Nginx 是否安装完成,可以用如下命令查看版本,打印出 Nginx 版本,则说明安装成功。

$ nginx -v<br>

nginx version: nginx/1.4.6 (Ubuntu)

之后,可以用如下命令启动 Nginx 服务:

# 启动服务

$ sudo service nginx start

# 查看服务状态

$ sudo service nginx status

* nginx is running  #说明服务是启动状态

在浏览器中访问 http://localhost, 显示结果如下:

Docker+Nginx+Tomcat7 配置简单的负载均衡

3. 下载 Docker 镜像,用 docker pull 命令即可,具体镜像操作可参看这篇文章

4. 启动一个容器并设置端口映射,其中一台命令如下:

sudo docker run -t -i -p 3222:22 -p 3280:80 87e5b6b3ccc1 /bin/bash

上面的命令是以标准的 bash 输出方式启动一个容器,设置端口映射,用 - p 参数,-p 宿主机端口:docker 容器端口,上面的命令是设置宿主机的 3222 端口映射到容器的 22 端口,设置宿主机的 3280 的端口映射到容器的 80 端口。

5. 在容器中安装 jre 和 tomcat7.0,安装 jre

wget -O jre-7u6-linux-x64.rpm http://Javadl.sun.com/webapps/download/AutoDL?BundleId=67387

yum install jre-7u6-linux-x64.rpm

查看 jre 是否安装成功

java -version

java version “1.7.0_06”

Java(TM) SE Runtime Environment (build 1.7.0_06-b24)

Java HotSpot(TM) 64-Bit Server VM (build 23.2-b09, mixed mode)

安装 tomcat7.0

wget http://apache.fayea.com/tomcat/tomcat-7/v7.0.65/bin/apache-tomcat-7.0.65.tar.gz

tar -zxvf  apache-tomcat-7.0.65.tar.gz

启动 tomcat, 进入解压目录,cd 到 bin 目录,执行命令并输入如下信息,说明 tomcat 启动成功

bash startup.sh

Using CATALINA_BASE:  /home/apache-tomcat-7.0.65

Using CATALINA_HOME:  /home/apache-tomcat-7.0.65

Using CATALINA_TMPDIR: /home/apache-tomcat-7.0.65/temp

Using JRE_HOME:        /usr

Using CLASSPATH:      /home/apache-tomcat-7.0.65/bin/bootstrap.jar:/home/apache-tomcat-7.0.65/bin/tomcat-juli.jar

Tomcat started.

由于 tomcat 默认端口是 8080,这里设置的是 80 端口,所以,需要修改默认端口到 80,进入 tomcat 安装目录的 conf 目录,用 vi 打开 server.xml 文件,将如下配置

<Connector port=”8080″ protocol=”HTTP/1.1″

              connectionTimeout=”20000″

              redirectPort=”8443″ />

修改为

<Connector port=”80″ protocol=”HTTP/1.1″

              connectionTimeout=”20000″

              redirectPort=”8443″ />

之后,在这台 docker 容器中,访问 http://localhost, 可以访问到 tomcat 主页,说明 tomcat 安装并配置成功。

6. 进入 tomcat 的 webapps/ROOT 目录中,由于这个容器的 ip 为 172.17.0.2,创建一个 hello.html 文件,在文件中写上如下内容“hello this is 172.17.0.2”,然后在宿主机访问 http://172.17.0.2/hello.html, 显示内容如下:

Docker+Nginx+Tomcat7 配置简单的负载均衡

7. 同上面的步骤一致,配置另外一台容器,只是容器启动时设置的映射端口有所区别,命令如下:

sudo docker run -t -i -p 3322:22 -p 3380:80 87e5b6b3ccc1 /bin/bash

最后在这台容器 tomcat 安装目录的 webapps/ROOT 目录下创建 hello.html 文件,因为这台容器的 ip 为 172.17.0.3,所以 hello.html 文件中填入的内容为“hello this is 170.17.0.3”,之后在宿主机访问 http://172.17.0.3/hello.html,显示如下内容:

Docker+Nginx+Tomcat7 配置简单的负载均衡

8. 容器配置完成后,剩下的工作就是配置宿主机的 Nginx, 用来完成负载均衡工作。

进入 /etc/nginx 目录,用 vim 编辑 nginx.conf, 在 http 节点中增加如下内容:

server {

                listen 80;

                server_name 192.168.1.106;

                location  / {

                        proxy_pass http://blance;

                }

        }

 

        upstream blance{

                server localhost:3280 weight=5;

                server localhost:3380 weight=5;

        }

首先定义一个 upstream, 设置 web 服务器的端口映射和权重,之后定义一个 server, 监听 80 端口,server_name 为 192.168.1.106,这是宿主机的 ip 地址(可配置成域名),“location /”意思是监听 80 端口下的所有请求,并使用上面设置的 upstream 作为代理。

9. 完成以上配置并保存后,在浏览器中访问 http://192.168.1.106/hello.html,并刷新页面,会发现页面有时显示“hello this is 172.17.0.3”,有时显示“hello this is 172.17.0.2”,说明配置成功,这样就完成了一个简单的负载均衡环境的配置。

更多 Nginx 相关教程见以下内容

CentOS 6.2 实战部署 Nginx+MySQL+PHP http://www.linuxidc.com/Linux/2013-09/90020.htm

使用 Nginx 搭建 WEB 服务器 http://www.linuxidc.com/Linux/2013-09/89768.htm

搭建基于 Linux6.3+Nginx1.2+PHP5+MySQL5.5 的 Web 服务器全过程 http://www.linuxidc.com/Linux/2013-09/89692.htm

CentOS 6.3 下 Nginx 性能调优 http://www.linuxidc.com/Linux/2013-09/89656.htm

CentOS 6.3 下配置 Nginx 加载 ngx_pagespeed 模块 http://www.linuxidc.com/Linux/2013-09/89657.htm

CentOS 6.4 安装配置 Nginx+Pcre+php-fpm http://www.linuxidc.com/Linux/2013-08/88984.htm

Nginx 安装配置使用详细笔记 http://www.linuxidc.com/Linux/2014-07/104499.htm

CentOS 环境下 Nginx 实现 3 台虚拟机负载均衡 http://www.linuxidc.com/Linux/2015-12/125875.htm

Nginx 的详细介绍:请点这里
Nginx 的下载地址:请点这里

本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-12/125907.htm

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计3593字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中