Docker容器Nginx负载均衡配置、check及stub模块安装
Nginx是一款高性能的HTTP和反向代理、负载均衡web服务器。本次在Docker容器中部署三个tomcat,Nginx代理三个tomcat服务(以下称节点)来模拟实现负载均衡效果,配置check模块,在前台查看各个节点的状态。
准备资料
- Centos的Dokcer容器环境
- jdk安装包,安装tomcat需要java运行环境,官网下载
- Tomcat安装包,官网下载
- Nginx安装包,官网下载
- check补丁包master https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
1、创建容器
- -i 交互模式
- -d 后端运行
- -h 容器的hostname
- --name 容器名
- --network 网卡
- --ip IP地址
- -p 端口映射
- --privileged=true 和 /usr/sbin/init 为特权模式参数
[root@localhost Tools]# docker run -i -d -h nginx --name nginx --net docker-br0 --ip 172.127.0.205 -p 1580:80 --privileged=true centos:7 /usr/sbin/init

2、上传资料 或者用wget命令下载
- 进入容器
[root@localhost Tools]# docker exec -it nginx /bin/bash

- 创建资料存放文件夹
[root@nginx /]# mkdir Tools

- 更新yum源
[root@nginx /]# yum -y update

- 安装常用命令及网络相关依赖包(vim zip unzip wget net-tools )
[root@nginx /]# yum -y install vim zip unzip wget net-tools

- 使用wget下载master、nginx
[root@localhost Tools]# wget https://codeload.github.com/yaoweibin/nginx_upstream_check_module/zip/master
[root@localhost Tools]# wget http://nginx.org/download/nginx-1.20.1.tar.gz
[root@nginx Tools]# wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.0.18/bin/apache-tomcat-10.0.18.tar.gz

- jdk下载需要Oracle账户登录,免费注册后即可下载,上传jdk安装包
- docker cp 需在宿主机执行
[root@localhost Tools]# docker cp jdk-8u321-linux-x64.tar.gz nginx:/Tools/
3、安装jdk
- 解压
- -C 指定解压后的目录
[root@nginx Tools]# tar -zxvf jdk-8u321-linux-x64.tar.gz -C /usr/local/

- 配置环境变量,使之生效
[root@nginx Tools]# vim /etc/profile
[root@nginx Tools]# source /etc/profile
[root@nginx Tools]# cat /etc/profile | grep export

- 验证
[root@nginx Tools]# java -version

4、安装3个Tomcat服务
- 解压后复制三份
[root@nginx Tools]# tar -zxvf apache-tomcat-10.0.18.tar.gz
[root@nginx Tools]# cp -R apache-tomcat-10.0.18 /usr/local/tomcat01
[root@nginx Tools]# cp -R apache-tomcat-10.0.18 /usr/local/tomcat02
[root@nginx Tools]# cp -R apache-tomcat-10.0.18 /usr/local/tomcat03
- 修改配置文件,主要是调整端口,三个tomcat的端口不一致即可
[root@nginx Tools]# vim /usr/local/tomcat01/conf/server.xml
[root@nginx Tools]# vim /usr/local/tomcat02/conf/server.xml
[root@nginx Tools]# vim /usr/local/tomcat03/conf/server.xml
[root@nginx Tools]# cat /usr/local/tomcat01/conf/server.xml

- 启动三个tomcat服务
[root@nginx Tools]# /usr/local/tomcat01/bin/startup.sh
[root@nginx Tools]# /usr/local/tomcat02/bin/startup.sh
[root@nginx Tools]# /usr/local/tomcat03/bin/startup.sh

- 验证
[root@nginx Tools]# ps -ef | grep tomcat

5、安装Nginx
- 安装依赖包
[root@nginx Tools]# yum -y install gcc gcc-c++ make automake autoconf libtool pcre* zlib openssl openssl-devel patch

- 解压
[root@nginx Tools]# tar -zxvf nginx-1.20.1.tar.gz
[root@nginx Tools]# unzip master
check模块非官方程序,需选择对应版本的补丁进行更新

- 打补丁,必须在解压后的文件目录
[root@nginx Tools]# cd nginx-1.20.1
[root@nginx nginx-1.20.1]# patch -p1 < /Tools/nginx_upstream_check_module-master/check_1.20.1+.patch

- 配置
- --prefix 指定安装Nginx的路径
- --with-http_stub_status_module 增加stub模块,用来检测集群节点的请求状态
- --add-module=/Tools/nginx_upstream_check_module-master/ check模块,主动检测集群状态模块
[root@nginx nginx-1.20.1]# ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --add-module=/Tools/nginx_upstream_check_module-master/

- 编译及安装
[root@nginx nginx-1.20.1]# make && make install

- 配置nginx.conf,一般在安装文件的conf目录下,本例为
/usr/local/nginx/conf/nginx.conf
[root@nginx nginx-1.20.1]# vim /usr/local/nginx/conf/nginx.conf
worker_processes 1; # 进程数
events {
worker_connections 1024; # 连接数
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
keepalive_timeout 65;
# 集群配置
upstream tomcat {
server 172.127.0.205:8080 weight=1 max_fails=3 fail_timeout=30s ;
server 172.127.0.205:8081 weight=1 max_fails=3 fail_timeout=30s ;
server 172.127.0.205:8081 weight=1 max_fails=3 fail_timeout=30s ;
check interval=3000 rise=2 fall=5 timeout=1000 type=http;
}
server {
listen 80;
server_name localhost;
location / {
root html;
index index.html index.htm;
proxy_pass http://tomcat; # 代理配置
}
# check模块配置
location /check_status {
check_status;
access_log off;
}
# stub模块配置
location /stub_status {
stub_status;
access_log off;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
- 启动nginx
[root@nginx nginx-1.20.1]# /usr/local/nginx/sbin/nginx
- 验证nginx
[root@nginx nginx-1.20.1]# ps -ef | grep nginx

6、代理、负载状态check、stub模块验证
代理验证

负载状态check

stub模块验证

Docker容器Nginx负载均衡配置、check及stub模块安装的更多相关文章
- Docker 安装 Nginx 负载均衡配置
Docker 安装 # 1)安装依赖包 yum install -y yum-utils device-mapper-persistent-data lvm2 # 2)添加Docker软件包源(否则d ...
- nginx高性能WEB服务器系列之六--nginx负载均衡配置+健康检查
nginx系列友情链接:nginx高性能WEB服务器系列之一简介及安装https://www.cnblogs.com/maxtgood/p/9597596.htmlnginx高性能WEB服务器系列之二 ...
- Tomcat服务部署与Nginx负载均衡配置
一.中间键产品介绍 目前来说IBM的WebSphere,Oracle的Weblogic占据了市场上java语言Web站点的部分份额,该两种软件都是商业化的软件,由于性能优越,可靠性高等优点应用于大型互 ...
- Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群
Tomcat集群,Nginx集群,Tomcat+Nginx 负载均衡配置,Tomcat+Nginx集群 >>>>>>>>>>>> ...
- Nginx负载均衡配置简单配置方法
http://www.jb51.net/article/121235.htm Nginx作为负载均衡服务器,用户请求先到达nginx,再由nginx根据负载配置将请求转发至不同的Web服务器.下面通过 ...
- Mall电商项目总结(二)——nginx负载均衡配置和策略
1. nginx配置文件 用户在浏览器上输入,http://www.xwld.site/ 实际上是在访问服务器80端口,nginx 监听80端口,将用户的请求转发到8080和9080端口 . upst ...
- docker 搭建 nginx负载均衡
本文描述如何在一台机器上搭建nginx负载均衡,我将会启动3个nginx的docker,分别是1台前置nginx负责分发,后面2台负责处理请求. 首先我切换到/usr/local/docker/文件夹 ...
- Nginx负载均衡配置实例详解
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
- Nginx负载均衡配置实例详解(转)
负载均衡是我们大流量网站要做的一个东西,下面我来给大家介绍在Nginx服务器上进行负载均衡配置方法,希望对有需要的同学有所帮助哦. 负载均衡 先来简单了解一下什么是负载均衡,单从字面上的意思来理解就可 ...
随机推荐
- ELK日志保留7天-索引生命周期策略
一.简介 ELK日志我们一般都是按天存储,例如索引名为"kafkalog-2022-04-05",因为日志量所占的存储是非常大的,我们不能一直保存,而是要定期清理旧的,这里就以保留 ...
- 「Python实用秘技07」pandas中鲜为人知的隐藏排序技巧
本文完整示例代码及文件已上传至我的Github仓库https://github.com/CNFeffery/PythonPracticalSkills 这是我的系列文章「Python实用秘技」的第7期 ...
- mmdetection训练出现nan
训练出现nan 在使用MMDetection训练模型时,发现打印信息中出现了很多nan.现象是,loss在正常训练下降的过程中,突然变为nan. 梯度裁减 在模型配置中加上grad_clip: opt ...
- Python 函数进阶-迭代器
迭代器 什么是迭代器 能被 next 指针调用,并不断返回下一个值的对象,叫做迭代器.表示为Iterator,迭代器是一个对象类型数据. 概念 迭代器指的是迭代取值的工具,迭代是一个重复的过程,每次重 ...
- 接口测试实战| GET/POST 请求区别详解
1.请求行的 method 不同:2.POST 可以附加 body,可以支持 form.json.xml.binary等各种数据格式:3.从行业通用规范的角度来说,无状态变化的建议使用 GET 请求, ...
- 程序员延寿指南「GitHub 热点速览 v.22.17」
很多人对程序员的固有印象之一便是常加班.易"猝死"!近几年的许多报道似乎也进一步加深了这种印象.应该如何更好地健康地活着.敲喜欢的代码呢?HowToLiveLonger 教你如何从 ...
- XCTF练习题---MISC---Hear-with-your-Eyes
XCTF练习题---MISC---Hear-with-your-Eyes flag:e5353bb7b57578bd4da1c898a8e2d767 解题步骤: 1.观察题目,下载附件 2.打开附件, ...
- 【CSAPP】Cache Lab 实验笔记
cachelab这节先让你实现个高速缓存模拟器,再在此基础上对矩阵转置函数进行优化,降低高速缓存不命中次数.我的感受如上一节,实在是不想研究这些犄角旮旯的优化策略了. 前期准备 我实验的时候用到了va ...
- 【Java分享客栈】超简洁SpringBoot使用AOP统一日志管理-纯干货干到便秘
前言 请问今天您便秘了吗?程序员坐久了真的会便秘哦,如果偶然点进了这篇小干货,就麻烦您喝杯水然后去趟厕所一边用左手托起对准嘘嘘,一边用右手滑动手机看完本篇吧. 实现 本篇AOP统一日志管理写法来源于国 ...
- python使用虚拟环境venv
venv模块支持使用自己的站点目录创建轻量级"虚拟环境",可选择与系统站点目录隔离.每个虚拟环境都有自己的Python二进制文件(与用于创建此环境的二进制文件的版本相匹配),并且可 ...