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