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

  • 概述

通常情況下,一個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)

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

安裝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>

在centos7上實現nginx+tomcat負載均衡
在centos7上實現nginx+tomcat負載均衡
在centos7上實現nginx+tomcat負載均衡
在centos7上實現nginx+tomcat負載均衡
在centos7上實現nginx+tomcat負載均衡
在centos7上實現nginx+tomcat負載均衡
==注==:兩臺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負載均衡
在centos7上實現nginx+tomcat負載均衡
在centos7上實現nginx+tomcat負載均衡

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