Docker創(chuàng)建nginx+tomcat集群+redis版session共享

單個(gè)docker集群

準(zhǔn)備工作

  1. Docker環(huán)境,根據(jù)自己環(huán)境搭建


    Windows環(huán)境下的Docker
  2. SpringBoot項(xiàng)目(加入spring-session-redis共享機(jī)制)下載地址

    頁面展示的信息

開始

  1. 首先把所需要的鏡像拉去下來,拉alpine版,測(cè)試用沒問題。

    • docker pull redis:alpine

    • docker pull nginx:alpine

    • docker pull tomcat:alpine

      alpine小5倍
  2. 把redis啟動(dòng)起來,暴露6379端口,然后mvn構(gòu)建項(xiàng)目。

    • docker run -d -p 6379:6379 redis redis-server --appendonly yes
    • 注:(這里springboot里yml文件redis地址配的是192.168.99.100,根據(jù)自己網(wǎng)絡(luò)更改。
  3. 構(gòu)建自己的tomcat鏡像,并啟動(dòng)3個(gè)

    • 創(chuàng)建個(gè)目錄,把打包好的hello.war放進(jìn)來,并且vi Dockerfile
    FROM tomcat:alpine
    COPY hello.war /usr/local/tomcat/webapps
    
    • docker build -t tomcat:hello . 構(gòu)建鏡像

    • docker run -d tomcat:hello 啟動(dòng)3個(gè)tomcat,并記錄ip地址

      tomcat ip地址

    注:(tomcat容器重啟后ip可能發(fā)生改變,可以直接開放端口
    docker run -d -p 8080:8080 tomcat:hello
    docker run -d -p 8081:8080 tomcat:hello
    docker run -d -p 8082:8080 tomcat:hello

  1. 啟動(dòng)Nginx,將本地的 nginx.conf 掛在到/etc/nginx/nginx.conf下
    $ docker run -d -p 80:80 -v /c/Users/Administrator/nginx/nginx/nginx.conf:/etc/nginx/nginx.conf nginx:alpine
    
  2. 修改nginx.conf配置,開啟代理模式
    http{
    #省略其他配置
      upstream tomcats {
        #均衡策略
        #none 輪詢(權(quán)重由weight決定)
        #ip_hash
        #fair
        #url_hash
        server 172.17.0.3:8080 ;
        server 172.17.0.4:8080 ;
        server 172.17.0.5:8080 ;
       }
     server {
        listen       80;
        server_name  localhost;
        #省略其他配置
        location / {
           root   /usr/share/nginx/html;
           index  index.html index.htm;
           proxy_pass http://tomcats;
           # 真實(shí)的客戶端IP
           proxy_set_header   X-Real-IP        $remote_addr; 
        
        }
    }
    

    注:(指定端口的配置
    server 192.168.99.100:8080 ;
    server 192.168.99.100:8081 ;
    server 192.168.99.100:8082 ;

  3. 修改完保存退出,重啟nginx容器 docker restart 1f
  • 多點(diǎn)幾次,會(huì)發(fā)現(xiàn)只有項(xiàng)目id及項(xiàng)目ip發(fā)生改變,session不變。
  • 至此我們以實(shí)現(xiàn)單機(jī)創(chuàng)建nginx+tomcat負(fù)載均衡及session共享。

結(jié)束

本文參照極客學(xué)院nginx的視頻,搭建的docker版,關(guān)于nginx,tomcat優(yōu)化,有興趣的可以去極客學(xué)院搜,講的還不錯(cuò)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容