概述
要解決的問題
環境準備以及問題解決思路
配置
測試
小結
一、概述
使用nginx主要是來解決高併發情況下的負載均衡問題。
二、要解決的問題
1、最主要是負載均衡請求分發。
3、多個tomcat之間session共享問題,否則會出現不斷要求登入的情況。
三、環境準備以及問題解決思路
1、第乙個問題肯定就是使用nginx來做負載均衡。安裝nginx,請參考:linux centos 6.5_x86安裝nginx。
2、第二個問題思路有兩個:
3、上述提到的第三個問題即session共享問題選擇是tomcat-redis-session_manager來解決的,具體請參考:使用tomcat-redis-session-manager來實現tomcat集群部署中的session共享。
3、一台linux安裝多個tomcat請參考:linux系統下安裝兩個或多個tomcat。
分別為:tomcat1:192.168.1.96:7070
tomcat2:192.168.1.96:8081
tomcat3:192.168.1.96:9090
四、配置
# 使用的使用者和組以下**配置了兩組負載均衡伺服器。user root root
;# 指定工作衍生程序數(一般等於cpu的總核數或總核數的兩倍,例如兩個四核cpu,則綜合數為8.通過命令ps -ef|grep nginx可以看出來設定的是幾個)
worker_processes 8;
#指定錯誤日誌存放的路徑,錯誤日誌記錄級別可選項為:[
debug|info|notice|warn|error|crit
],預設是crit,記錄的日誌數量從crit到debug,由少到多。
error_log /usr/local/nginx/logs/nginx_error.log crit
;#指定pid存放的路徑
pid /usr/local/nginx/nginx.pid
;# 指定檔案描述符數量??
worker_rlimit_nofile 51200;
#events settings
events
#遵循http協議的伺服器全域性設定
#server虛擬主機設定,可以設定多個:基於ip的虛擬主機,基於網域名稱的虛擬主機
# 第乙個虛擬主機(基於網域名稱的虛擬主機),反向**tomcat_server和image_server這兩組伺服器
server
# location模組說明
# 使用環境:server模組
# iamge 伺服器location
location ~*/nginxtest/image/
#image expires settings
# expires 屬於http header模組,主要用來nginx返回給使用者網頁新增附件的header資訊,可以在http,server,location中使用
# expires 屬於http header模組,主要用來nginx返回給使用者網頁新增附件的header資訊,可以在http,server,location中使用
location ~ .*\.(js|css|html)?$
# 如果http模組設定了,則繼承。此處設定了則覆蓋。
#error_page 404 /404.html;
#error_page 500 502 503 504 /50x.html;
}}
#upstream設定,設定**伺服器(負載均衡池),預設的負載均衡方式是輪詢,另外一種是ip_hash其中location ~*/nginxtest/image/ 符合這種url路徑(這種路徑是根據自己的應用需求約定的)的請求**到 proxy_pass屬性指定的 image_server伺服器,其他請求**到tomcat_server這組伺服器。具體的路徑規則請按照自己專案需求約定。nginx配置引數請參考書籍:《實戰nginx:取代apache的高效能web伺服器》。upstream tomcat_server
五、測試
說明:
解壓後有三個檔案:nginxtest.war,nginxtest2.war,nginximagetest.war,
其中nginxtestimage必須放到tomcat3中,三個應用程式名字在放入tomcat之後必須都改為nginxtest。
只用nginxtestimage應用有檔案,nginxtest和nginxtest2中無檔案。
訪問:http://ip:port/nginxtest/whichtomcat,如下圖:
不斷重新整理該頁面,sessionid如果是不變化的說明,session是從redis中取到的,解決了session共享問題。
不斷重新整理頁面,這是「tomcat伺服器1「文字應該和「tomcat伺服器2」不斷變化,說明請求訪問的不是相同的tomcat。因為只有tomcat3中的應用有檔案,所以的獲取是從tomat3中獲取的,也就解決了第二個問題。
六、小結
1、此時nginx只有一台,如果這台nginx訪問不了了,整個集群就無法提供服務,所以為了實現nginx的高可用,需要實現nginx的failover,實現方式參考:nginx+keepalived實現站點高可用。
2、redis的問題同上,參考:keepalived+redis 高可用redis主從解決方案。
使用Nginx實現Tomcat集群負載均衡
1.概述 2.要解決的問題 3.環境準備以及問題解決思路 一 概述 使用nginx主要是來解決高併發情況下的負載均衡問題。二 要解決的問題 1 最主要是負載均衡請求分發。3 多個tomcat之間session共享問題,否則會出現不斷要求登入的情況。三 環境準備以及問題解決思路 1 第乙個問題肯定就是...
tomcat和nginx的使用
context path ol docbase mastering openlayers3 1.1 server location location geoserver 配置詳解 listen為監聽埠,server name為服務名稱,上面配置的訪問位址為http localhost 11100 l...
nginx結合tomcat實現負載均衡
哇,首先容許我感嘆一聲,nginx是真的恐怖,反向 負載均衡 web快取等等內容的實現只需要修改下配置,誰能想到這一切會如此簡單,不得不讓人感嘆,果然偷懶才是人類進步的源泉 笑 先說下什麼是web伺服器的負載均衡,簡單來說就是就是將多個請求分攤到多個伺服器上,從而提高網路的可用性。大致架構應該是下面...