- 概述
通常情況下,一個Tomcat站點由于可能出現(xiàn)單點故障及無法應(yīng)付過多客戶復(fù)雜多樣的請求等問題,不能單獨應(yīng)用于生產(chǎn)環(huán)境下,所以需要一套更可靠的解決方案來完善web站點架構(gòu)。
nginx是一款優(yōu)秀的http服務(wù)器軟件,它能夠支持多達(dá)50000個并發(fā)連接數(shù)的響應(yīng),擁有強(qiáng)大的靜態(tài)資源處理能力,運行穩(wěn)定,并且內(nèi)存,CPU等系統(tǒng)資源消耗非常低。目前有很多大型網(wǎng)站都應(yīng)用nginx作為后端網(wǎng)站程序的反向代理及負(fù)載均衡。
本案例我們將已nginx作為負(fù)載均衡器,反向代理,tomcat作為節(jié)點服務(wù)器。
- 案例環(huán)境
主機(jī) | IP地址 |
---|---|
nginx服務(wù)器 | 192.168.177.132 |
tomcat服務(wù)器1 | 192.168.177.145 |
tomcat服務(wù)器2 | 192.168.177.135 |
tomcat服務(wù)器
安裝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 //設(shè)置環(huán)境變量 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 //開啟服務(wù) # netstat -anpt | grep 8080 //查看tomcat端口是否開啟 # http://192.168.177.145:8080/ //測試默認(rèn)測試頁是否正常顯示(節(jié)點) # vim /usr/local/tomcat8/webapps/ROOT/index.jsp //修改默認(rèn)網(wǎng)頁內(nèi)容(站點) <h1>this is 145!!!</h1>
==注==:兩臺tomcat服務(wù)器配置完全一樣
nginx服務(wù)器
手工編譯安裝
# tar zxvf nginx-1.12.0.tar.gz -C /opt # yum install pcre-devel zlib-devel gcc gcc-c++ -y //安裝環(huán)境包 # useradd -M -s /sbin/nologin nginx //創(chuàng)建管理nginx的用戶 # cd /opt/nginx-1.12.0/ ./configure --prefix=/usr/local/nginx --user=nginx //指定運行的用戶 --group=nginx //指定運行的組 --with-http_stub_status_module //啟用統(tǒng)計狀態(tài) # make && make install # ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ //讓系統(tǒng)識別命令 # 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 //執(zhí)行權(quán)限 # 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; //權(quán)重相同,頁面會反復(fù)在以下兩個頁面間來回切換 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的默認(rèn)站點通過 proxy_pass方法代理到設(shè)定好的tomcat_server負(fù)載均衡服務(wù)器上 } # service nginx restart //啟用nginx服務(wù)//