Nginx+Tomcat負(fù)載均衡集群安裝配置案例詳解
介紹Tomcat及Nginx+Tomcat負(fù)載均衡集群,Tomcat的應(yīng)用場景,然后重點介紹Tomcat的安裝配置。Nginx+Tomcat負(fù)載均衡集案列是應(yīng)用于生產(chǎn)環(huán)境的一套可靠的Web站點解決方案。
一、Nginx+Tomcat
通常情況下,一個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),擁有強大的靜態(tài)資源的處理能力,運行穩(wěn)定,并且內(nèi)存、CPU等系統(tǒng)資源消耗非常低。目前很多大型網(wǎng)站都應(yīng)用Nginx服務(wù)器為后端網(wǎng)站程序的反向代理及負(fù)載均衡器,來提升整個站點的負(fù)載并發(fā)能力。
部署環(huán)境
主機 | 操作系統(tǒng) | IP地址 | 主要軟件 |
Nginx服務(wù)器 |
CentOS 7.4 x86_64 |
192.168.196.146 |
nginx-1.12.2.tar.gz |
Tomcat服務(wù)器1 |
CentOS 7.4 x86_64 |
192.168.196.147 |
①apache-tomcat-9.0.16.tar.gz / ②jdk-8u201-linux-x64.rpm |
Tomcat服務(wù)器2 |
CentOS 7.4 x86_64 |
192.168.196.153 |
①apache-tomcat-9.0.16.tar.gz / ② jdk-8u201-linux-x64.rpm |
二、配置Nginx服務(wù)器
1.關(guān)閉防火墻相關(guān)服務(wù)
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld [root@localhost ~]# setenforce 0 [root@localhost ~]# vim /etc/resolv.conf nameserver 114.114.114.114
2.安裝依賴包
[root@localhost ~]# yum install -y gcc gcc-c++ pcre-devel zlib-devel make
3.編譯安裝Nginx
[root@localhost ~]# tar zxvf nginx-1.12.2.tar.gz -C /opt/ [root@localhost ~]# cd /opt/nginx-1.12.2/ [root@localhost nginx-1.12.2]# ./configure \ --prefix=/usr/local/nginx \ --user=nginx \ --group=nginx \ --with-http_stub_status_module [root@localhost nginx-1.12.2]# make && make install [root@localhost nginx-1.12.2]# ln -s /usr/local/nginx/sbin/* /usr/local/sbin/ [root@localhost ~]# useradd -M -s /sbin/nologin nginx
4.添加Nginx系統(tǒng)服務(wù)
[root@localhost ~]# vim /lib/systemd/system/nginx.service [Unit] Description=nginx After=network.target [Service] Type=forking PIDFile=/usr/local/nginx/logs/nginx.pid ExecStart=/usr/local/nginx/sbin/nginx ExecrReload=/bin/kill -s HUP $MAINPID ExecrStop=/bin/kill -s QUIT $MAINPID PrivateTmp=true [Install] WantedBy=multi-user.target [root@localhost ~]# chmod 754 /lib/systemd/system/nginx.service #賦權(quán),除了root以外的用戶都不能修改 [root@localhost ~]# systemctl start nginx.service [root@localhost ~]# systemctl enable nginx.service
5.網(wǎng)頁測試
三、部署Tomcat應(yīng)用服務(wù)器
1.實施準(zhǔn)備
[root@localhost ~]# systemctl stop firewalld [root@localhost ~]# systemctl disable firewalld.service [root@localhost ~]# setenforce 0
2.安裝JDK,配置Java環(huán)境
[root@localhost ~]# rpm -ivh jdk-8u201-linux-x64.rpm
3.設(shè)置JDK環(huán)境
[root@localhost ~]# vim /etc/profile ... #插入三行內(nèi)容 export JAVA_HOME=/usr/java/jdk1.8.0_201-amd64 export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export PATH=$JAVA_HOME/bin:$PATH [root@localhost ~]# source /etc/profile
4.安裝配置Tomcat
[root@localhost ~]# tar zxvf apache-tomcat-9.0.16.tar.gz -C /opt/ [root@localhost ~]# cd /opt/ [root@localhost opt]# mv apache-tomcat-9.0.16/ /usr/local/tomcat
5. 優(yōu)化管理
[root@localhost ~]# ln -s /usr/local/tomcat/bin/startup.sh /usr/local/bin/ [root@localhost ~]# ln -s /usr/local/tomcat/bin/shutdown.sh /usr/local/bin/
6.啟動服務(wù)startup.sh
Tomcat1的配置
1.創(chuàng)建一個測試目錄
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test
2.動態(tài)頁面的配置
[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>JSP test1 page </title> </head> <body> <% out.println("動態(tài)頁面 1,http://www.test1.com");%> </body> </html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml ... <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> #大約160行插入 ... [root@localhost ~]# shutdown.sh [root@localhost ~]# startup.sh
Tomcat2配置
1.創(chuàng)建一個測試目錄
[root@localhost ~]# mkdir /usr/local/tomcat/webapps/test
2.動態(tài)頁面的配置
[root@localhost ~]# vim /usr/local/tomcat/webapps/test/index.jsp <%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <html> <head> <title>JSP test2 page </title> </head> <body> <% out.println("動態(tài)頁面 2,http://www.test2.com");%> </body> </html>
[root@localhost ~]# vim /usr/local/tomcat/conf/server.xml ... <Context docBase="/usr/local/tomcat/webapps/test" path="" reloadable="true" /> #大約160行插入 ... [root@localhost ~]# shutdown.sh [root@localhost ~]# startup.sh
3.nginx準(zhǔn)備靜態(tài)頁面
[root@localhost ~]# echo '<html><body><h1>靜態(tài)界面...</h1></body></html>' > /usr/local/nginx/html/index.html
[root@localhost ~]# vim /usr/local/nginx/conf/nginx.conf ... upstream tomcat_server { server 192.168.192.147:8080 weight=1; server 192.168.192.153:8080 weight=1; } location ~ .*\.jsp$ { #把nginx接收到的客戶端的ip地址賦值給跳轉(zhuǎn)到tomcat請求中的源ip;識別客戶的真實ip,并且賦值與跳轉(zhuǎn) proxy_pass http://tomcat_server; proxy_set_header HOST $host; ##設(shè)定后端的web服務(wù)器接收到的請求訪問的主機名(域名或ip、端口),默認(rèn)host的值為proxy_pass直連設(shè)置的主機名 proxy_set_header X-Real-IP $remote_addr; #把$remote_addr復(fù)制給X-Real-IP(自定義),來回去源IP proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; #在nginx最為代理服務(wù)器時,設(shè)置的IP列表,會把經(jīng)過的及其ip,代理及其ip都記錄下來 } ... [root@localhost ~]#systemctl restart nginx.service
4.網(wǎng)頁測試效果
總結(jié)
可將兩個或多個Tomcat server 放到 Nginx 的 upstream 中組成一個負(fù)載均衡集群,然后通過 proxy_pass 這種 Web 代理的方式在 location 中設(shè)置集群站點,然后再通過 weight 值來分別對 Tomcat server 進(jìn)行權(quán)重的設(shè)置。
在生產(chǎn)環(huán)境中,Tomcat server 的硬件配置可能不盡相同,可以通過修改相應(yīng)服務(wù)器的 weight 值,對配置較高或配置較低的服務(wù)器的訪問請求進(jìn)行分配控制
到此這篇關(guān)于Nginx+Tomcat負(fù)載均衡集群安裝配置案例詳解的文章就介紹到這了,更多相關(guān)Nginx Tomcat負(fù)載均衡集群內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非www.sddonglingsh.com所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。