億級併發|day06-Nginx高階應用(上)
0 前期準備
1 服務代理
1.1 需求
1.2 編輯配置檔案
#後臺管理系統
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://localhost:8091;
}
}
1.3 頁面效果
2 Tomcat叢集部署
2.1 Windows中部署tomcat叢集
2.1.1 準備3臺tomcat
2.1.2 修改配置檔案
啟動3臺tomcat,修改對應的埠號 1.修改8005埠
2.修改8080埠
3.修改8009埠
2.1.3 專案釋出
將原有的ROOT檔案刪除,部署新的war包,之後重啟tomcat服務
2.2 基於Nginx實現負載均衡
2.2.1 輪詢策略
特點 根據配置檔案的順序,依次訪問不同的tomcat伺服器。
配置檔案:
#配置tomcat負載均衡 1.輪詢
upstream jt {
server localhost:8091;
server localhost:8092;
server localhost:8093;
}
#後臺管理系統
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://jt;
}
}
2.2.2 權重
特點 根據伺服器處理能力的不同,動態劃分請求,處理能力越高,所處理的請求越多。
配置檔案:
#配置tomcat負載均衡 1.輪詢 2.權重
upstream jt {
server localhost:8091 weight=6;
server localhost:8092 weight=3;
server localhost:8093 weight=1;
}
2.2.3 IP_HASH
實際問題 採用叢集方式不能實現使用者的session共享,因為不同的tomcat之間是物理隔離,如何解決?
專業術語 Session黏著:指Session共享
解決方案 A:採用SessionId進行url重寫 優點:可以實現Session共享,Cookie禁用。 缺點:效率太低
B:使用Nginx中IP_HASH技術,能夠根據使用者的IP動態的繫結到一臺伺服器中,變相的實現Session共享。IP_HASH優先順序最高,配置後輪詢和權重不生效。 缺點: 1.如果伺服器宕機,使用者訪問受限。 2.使用IP_HASH導致負載不均。 3.安全性不好。
C:實現單點登入(SSO)
2.2.4 Nginx故障遷移
-
手動下線 server localhost:8091 weight=6 down;
-
備用機機制 server localhost:8093 weight=1 backup;
-
設定超時時間 proxy_connect_timeout 3; proxy_read_timeout 3; proxy_send_timeout 3;
-
健康監測 說明:在規定的週期內,使用者會通過健康監測,檢查當前的伺服器是否可用。 如果發現伺服器宕機,則在當前的週期內不會再將請求發往故障機,直到下個週期;故障機修復後,可以在下一個週期後繼續提供服務。 server localhost:8091 max_fails=1 fail_timeout=60s;
5.程式碼測試
#配置tomcat負載均衡 1.輪詢 2.權重 3.ip_hash方式
upstream jt {
#ip_hash;
server localhost:8091 max_fails=1 fail_timeout=60s;
server localhost:8092 max_fails=1 fail_timeout=60s;
server localhost:8093 max_fails=1 fail_timeout=60s;
}
#後臺管理系統
server {
listen 80;
server_name manage.jt.com;
location / {
proxy_pass http://jt;
proxy_connect_timeout 3;
proxy_read_timeout 3;
proxy_send_timeout 3;
}
}
2.2.5 公司中伺服器部署步驟
- 根據本次部署的策略,將伺服器進行分類。
- 將需要部署的伺服器進行下線down。
- 將war包釋出到指定的tomcat伺服器中,之後進行測試,如果測試無誤將該伺服器上線即可。
- 之後依次上線其他的伺服器。
3 Linux中叢集部署
3.1 虛擬機器介紹
3.1.1 虛擬機器引數
記憶體:如果設定了指定的記憶體大小,那麼當虛擬機器啟動時,會從作業系統中割裂指定的記憶體大小。
3.1.2 網路模式
-
橋接模式:虛擬機器直接連線網路 特點:只要在區域網中的機器都可以訪問虛擬機器。
-
NAT模式:在當前的網路環境中,依據虛擬機器的net8網絡卡,開闢了一塊全新的網路空間,該空間只能真實的宿主機訪問,其他人不能訪問虛擬機器。
192.168.126.1 代表windows真實計算機的IP地址
3.1.3 克隆虛擬機器
3.1.4 配置靜態IP
3.1.5 XShell安裝
說明 XShell是一種遠端連線Linux作業系統的工具。
-
虛擬機器連線
-
如果虛擬機器連線不通,需要動態修改IP獲取方式
之後禁用再啟動即可。
3.2 Linux介紹
特點: 1.開源和免費的 規範Unix—Linux 2.執行穩定 -2.1 佔用核心小 -2.2 全部的程式都是基於檔案的 3.Linux系統在服務端應用廣泛,安全性更好。
以下是主流的Linux系統:
3.2.2 Linux命令
命令 | 作用 |
---|---|
cd | 進入指定目錄下 |
ls | 查詢當前資料夾下的檔案資訊 |
pwd | 查詢當前檔案所在位置 |
mkdir 檔名稱 | 建立資料夾mkdir -p ee/ff/gg 建立多級資料夾 |
rm -rf 檔名稱 | 刪除檔案 |
vi 檔名稱 | 用vi開啟檔案I insert 表示插入資訊 Esc 退出當前狀態U 表示檔案撤銷操作:wq 儲存退出q!強制退出 |
vim | 和vi命令類似,功能更加強大 |
cp | 複製命令cp aa.txt cc/dd.txtcp aa.txt cc/ 以原名複製cp -r cc dd 複製整個資料夾 |
mv | 移動命令mv bb.txt cc 將bb.txt 移到到cc資料夾中mv cc dd 移動資料夾mv dd aa 如果沒有aa資料夾時,那麼則修改檔案的名稱 |
3.3 Linux中安裝JDK
3.3.1 上傳安裝包
新建資料夾/usr/local/src/java/後,將JDK檔案上傳到java資料夾下。
3.3.2 解壓檔案
命令:tar -xvf jdk-8u51-linux-x64.tar.gz 確定jdk安裝目錄
3.3.3 修改環境變數
- 輸入命令:vim /etc/profile 開啟profile修改環境變數
2.輸入命令:source /etc/profile 手動重新整理環境變數 檢查jdk是否配置成功