1. 程式人生 > >在centos7上實現nginx+tomcat負載均衡

在centos7上實現nginx+tomcat負載均衡

size spa atd c++ 由於 oca efi centos7 c11

  • 概述
  • 通常情況下,一個Tomcat站點由於可能出現單點故障及無法應付過多客戶復雜多樣的請求等問題,不能單獨應用於生產環境下,所以需要一套更可靠的解決方案來完善web站點架構。

    nginx是一款優秀的http服務器軟件,它能夠支持多達50000個並發連接數的響應,擁有強大的靜態資源處理能力,運行穩定,並且內存,CPU等系統資源消耗非常低。目前有很多大型網站都應用nginx作為後端網站程序的反向代理及負載均衡。

    本案例我們將已nginx作為負載均衡器,反向代理,tomcat作為節點服務器。

    • 案例環境
    主機 IP地址
    nginx服務器 192.168.177.132
    tomcat服務器1 192.168.177.145
    tomcat服務器2 192.168.177.135

    tomcat服務器

    安裝jdk(1.8版本)
    # tar xf apache-tomcat-8.5.23.tar.gz /opt
    # tar xf jdk-8u144-linux-x64.tar.gz /opt
    //解壓安裝包
    # mv apache-tomcat-8.5.23/ /usr/local/tomcat8
    # mv jdk1.8.0_144/ /usr/local/java
    //便於管理
    # vim /etc/profile   //設置環境變量
    
    export JAVA_HOME=/usr/local/java
    export JRE_HOME=/usr/local/java/jre
    export PATH=$PATH:/usr/local/java/bin
    export CLASSPATH=./:/usr/local/java/lib:/usr/local/java/jre/lib
    
    # source /etc/profile
    # java -version   //查看java版本信息
       java version "1.8.0_131"
       OpenJDK Runtime Environment (build 1.8.0_131-b12)
       OpenJDK 64-Bit Server VM (build 25.131-b12, mixed mode)

    技術分享圖片

    安裝tomcat
    # ln -s /usr/local/tomcat8/bin/startup.sh /usr/bin/tomcatup
    # ln -s /usr/local/tomcat8/bin/shutdown.sh /usr/bin/tomcatdown
    //放在/usr/bin下便於識別命令
    # tomcatup     //開啟服務
    # netstat -anpt | grep 8080   //查看tomcat端口是否開啟
    # http://192.168.177.145:8080/         //測試默認測試頁是否正常顯示(節點)
    # vim /usr/local/tomcat8/webapps/ROOT/index.jsp //修改默認網頁內容(站點)
        <h1>this is 145!!!</h1>

    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片
    技術分享圖片
    ==註==:兩臺tomcat服務器配置完全一樣

    nginx服務器

    手工編譯安裝
    # tar zxvf nginx-1.12.0.tar.gz -C /opt
    # yum install pcre-devel zlib-devel gcc gcc-c++ -y    //安裝環境包
    # useradd -M -s /sbin/nologin nginx  //創建管理nginx的用戶
    # cd /opt/nginx-1.12.0/ 
        ./configure     --prefix=/usr/local/nginx     --user=nginx \   //指定運行的用戶
        --group=nginx \   //指定運行的組
        --with-http_stub_status_module   //啟用統計狀態
    # make && make install
    # ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/    //讓系統識別命令
    # nginx -t   //驗證語法
    編寫便於service管理的腳本
    # cd /etc/init.d/
      vim nginx
    
    #!/bin/bash
    # chkconfig: - 99 20
    # description: Nginx Service Control Script
    PROG="/usr/local/nginx/sbin/nginx"
    PIDF="/usr/local/nginx/logs/nginx.pid"
    case "$1" in
      start)
        $PROG
        ;;
      stop)
        kill -s QUIT $(cat $PIDF)
        ;;
      restart)
        $0 stop
        $0 start
        ;;
      reload)
        kill -s HUP $(cat $PIDF)
        ;;
      *)
            echo "Usage: $0 {start|stop|restart|reload}"
            exit 1
    esac
    exit 0
    # chmod +x /etc/init.d/nginx   //執行權限
    # chkconfig --add nginx
    # chkconfig --level 35 nginx on
    # service nginx stop
    # netstat -ntap | grep 80
    # service nginx start
    # netstat -ntap | grep 80
    修改配置文件
    # vim /usr/local/nginx/conf/nginx.conf
    
      #keepalive_timeout  0;
        keepalive_timeout  65;
    
        #gzip  on;
         添加:
        upstream tomcat_server {                             #添加
                  server 192.168.177.145:8080 weight=1;   //權重相同,頁面會反復在以下兩個頁面間來回切換
                  server 192.168.177.135:8080 weight=1;    
                }
    
        server {
            listen       80;
    .....省略
    location / {
                # root   html;
                # index  index.html index.htm;
                proxy_pass http://tomcat_server;  //添加一行 ,把nginx的默認站點通過 proxy_pass方法代理到設定好的tomcat_server負載均衡服務器上   
            }
    # service nginx  restart   //啟用nginx服務//

    技術分享圖片
    技術分享圖片
    技術分享圖片

    在centos7上實現nginx+tomcat負載均衡