在centos7上實現nginx+tomcat負載均衡
阿新 • • 發佈:2018-08-12
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負載均衡