Docker容器Nginx负载均衡配置、check及stub模块安装

网友投稿 293 2022-10-20

Docker容器Nginx负载均衡配置、check及stub模块安装

Nginx是一款高性能的HTTP和反向代理、负载均衡web服务器。本次在Docker容器中部署三个tomcat,Nginx代理三个tomcat服务(以下称节点)来模拟实现负载均衡效果,配置check模块,在前台查看各个节点的状态。

准备资料

Centos的Dokcer容器环境jdk安装包,安装tomcat需要java运行环境,官网下载Tomcat安装包,官网下载Nginx安装包,官网下载check补丁包master​​交互模式-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 Tools]# wget Tools]# wget 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-增加stub模块,用来检测集群节点的请求状态--add-module=/Tools/nginx_upstream_check_module-master/ check模块,主动检测集群状态模块

[root@nginx nginx-1.20.1]# ./configure --prefix=/usr/local/nginx --with---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; # 连接数}{ 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= } server { listen 80; server_name localhost; location / { root html; index index.html index.htm; proxy_pass # 代理配置 } # 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模块验证

作者:99号程序员

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Docker容器安装RabbitMQ
下一篇:RestTemplate文件上传下载与大文件流式下载
相关文章

 发表评论

暂时没有评论,来抢沙发吧~