docker+Tomcat+Nginx實現負載均衡(也可以說是災備)

環境準備:docker環境,兩個tomcat,一個nginx,再加上之前配置的redis同步了session,這個配置就可以實現負載均衡了,我是用來災備了,這篇文章主要講述nginx+tomcat實現負載均衡,其他的教程參考之前的文章。

docker安裝教程:https://blog.csdn.net/buyaopingbixiazai/article/details/89291116

docker安裝配置tomcat:https://blog.csdn.net/buyaopingbixiazai/article/details/89344211

docker安裝配置redis:https://blog.csdn.net/buyaopingbixiazai/article/details/89303538

docker利用redis+tomcat實現session共享:https://blog.csdn.net/buyaopingbixiazai/article/details/89342942

docker安裝配置nginx:https://blog.csdn.net/buyaopingbixiazai/article/details/89389335

開始本篇:docker利用nginx+tomcat實現負載均衡

1.修改配置文件

我這裏是兩個tomcat,一主一備,主(1982.168.29.24:8089),備(192.168.29.24:8090),nginx放在192.168.29.24

所以第一步先在配置文件裏面添加如下內容:

upstream myproject {
            server 192.168.29.24:8089;
            server 192.168.29.24:8090 backup;
     }

第二步配置缺省訪問路徑:

server {
        listen 80;
        server_name nginx2tomcat1;   
    location / {
         proxy_pass http://myproject;
    }
   
    }

附上我的nginx.conf文件全部內容

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;


events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
                      '$status $body_bytes_sent "$http_referer" '
                      '"$http_user_agent" "$http_x_forwarded_for"';

    access_log  /var/log/nginx/access.log  main;

    sendfile        on;
    #tcp_nopush     on;

	upstream myproject {
            server 192.168.29.24:8089;
            server 192.168.29.24:8090 backup;
     }
	
	
	
    keepalive_timeout  65;

    #gzip  on;
    server {
        listen 80;
        server_name nginx2tomcat1;
   	
	
	location / {
	 	proxy_pass http://myproject;
	}
	
	
	
    }
    include /etc/nginx/conf.d/*.conf;
}

2.重啓

重啓nginx:    docker restart 容器名稱(容器ID)

3.驗證

首先訪問192.168.29.24,這時候應該訪問到的是192.168.29.24:8089,登陸之後查看你頁面,然後手動關掉8089端口的服務(docker stop jax-tomcat1),再次訪問192.168.29.24,看到進入了192.168.29.24:8089的系統,測試成功!

3.1首次訪問192.168.29.24並登錄

3.2關閉8089端口的服務器,


[root@localhost ~]# docker stop jax-tomcat1
jax-tomcat1
[root@localhost ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                            NAMES
7f9f5c1e142f        tomcatwcy           "catalina.sh run"        2 days ago          Up 15 minutes       80/tcp, 0.0.0.0:8090->8080/tcp   jax-tomcat2
d2cec1acd172        redis:latest        "docker-entrypoint.s…"   3 days ago          Up 7 hours          0.0.0.0:6379->6379/tcp           jax_redis
4068c1c383f1        tomcat:7.0.92       "catalina.sh run"        3 weeks ago         Up 7 hours          0.0.0.0:8455->8080/tcp           checktomcat
6f9726681e83        mysql:5.7.19        "docker-entrypoint.s…"   3 weeks ago         Up 7 hours          0.0.0.0:3306->3306/tcp           mysql
5eb927494115        nginx               "nginx -g 'daemon of…"   5 weeks ago         Up 7 hours          0.0.0.0:80->80/tcp               nginx_test
f42ef6cc1aca        tomcat:7.0.92       "catalina.sh run"        5 weeks ago         Up 7 hours          0.0.0.0:8083->8080/tcp           tomcat3

3.3再次訪問192.168.29.24

說明:根據標記的地方即可區分是兩個項目

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章