1 Nginx高階
1.1 Nginx的程式
1.1.1 程式與守護程式
說明:Nginx的啟動一次啟動2個程式.一個是主程式,另一個是守護程式.守護程式的作用防治主程式意外關閉.
關閉Nginx:
如果需要關閉Nginx,先關閉守護程式.在關閉主程式.
nginx -s stop
1.1.2 Nginx的例項化
說明:Nginx的程式可以做到秒開和秒關,並且可以無限的開啟程式.並且支援50000次的併發.
1.1.3 Nginx系統首頁跳轉
說明:Nginx中可以寫很多的服務項,每攔截一個url就是一項服務(server).
server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; }
特殊的屬性:
root :表示轉向的是一個資料夾
proxy_pass:表示轉向具體的URL.它是一個代理的請求
1.2 實現京淘後臺頁面跳轉
1.2.1 編輯Nginx配置檔案
要求:當url中輸入manage.jt.com時需要將請求轉發到localhost:8091上
實現:
通過Nginx實現反向代理
#京淘的後臺管理系統 nginx負載監聽瀏覽器.攔截具體的url實現頁面轉向
server { listen 80; server_name manage.jt.com; #頁面轉向 轉向的是一個具體的url location / { proxy_pass http://localhost:8091; } }
1.2.2 編輯Hosts檔案
說明:通過Hosts工具實現修改.修改hosts的作用是將請求轉發到本機.
1.2.3 頁面跳轉測試
1.2.4 異常說明
說明:
- 重啟Nginx時需要將nginx先全部關閉.再次啟動.之後測試
- 配置檔案複製前一個後修改
2 Nginx實現叢集的部署
2.1 叢集部署
2.1.1 叢集部署的意義
說明:通過配置叢集的方式,是解決高併發問題有效方案.
解決方法:通過Nginx負載均衡技術和反向代理技術,可以實現叢集的搭建
2.2 Window中啟動多臺tonmcat
2.2.1 Tomcat配置
說明:有些機器可能啟動無緩衝tomcat時報錯.需要自己手動複製本機自由的tomcat做測試.
2.2.2 修改配置檔案
說明:分別將專案的parent-common-manage通過Maven工具打包
1.修改server.xml檔案的埠
<Connector port="8092" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" />
2.修改日誌監聽端
<Server port="8006" shutdown="SHUTDOWN">
3.修改AJP埠
<Connector port="8010" protocol="AJP/1.3" redirectPort="8443" />
2.3 配置Nginx
2.3.1 編輯負載均衡
#實現Nginx的負載均衡
upstream jt{
server 127.0.0.1:8091;
server 127.0.0.1:8092;
server 127.0.0.1:8093;
}
2.3.2 負載均衡實現
#京淘的後臺管理系統 nginx負載監聽瀏覽器.攔截具體的url實現頁面轉向
server {
listen 80;
server_name manage.jt.com;
#頁面轉向 轉向的是一個具體的url 表示upstream名稱
location / {
proxy_pass http://jt;
}
}
2.4 Tomcat啟動時異常
2.4.1 引入log4j日誌jar包
說明:
引入日誌檔案需要的步驟
1.引入log4j.jar
2.檢測是否含有配置檔案
3.properties檔案如何被引用
要求:
1.檔案的名稱必須為log4j.properties
2.要求檔案的路徑位於resources目錄下
原因:
因為在log4j原始碼中有靜態程式碼塊.預設的讀取的配置檔案的路徑和名稱都是寫死的/log4j.properties
2.4.2 Tomcat日誌檔案
說明:通過tomact的日誌檔案檢測報錯資訊.如果檔案過多,先將tomcat停止,之後刪除catalina.log檔案,之後重啟
2.4.3 常見的錯誤
- 字母的大小寫 ,除了類名開頭之外 ,全部的都是小寫的(sql語句/配置檔案的路徑)
- 埠被佔用
a) 關機重啟
b) ~~~~~~~
2.5 Nginx負載均衡的策略
2.5.1 輪詢策略
說明:每臺服務根據順序依次訪問.並且它是nginx中預設的負載均衡的方式.
載入的順序和Nginx中的配置的順序是相同的
2.5.2 權重的方式
需求:
由於公司的伺服器不同同一個型號,效能上略有差異.這時使用輪詢可能會出現問題
2.解決方法:採用權重的方式
說明:根據伺服器的效能,動態的分配連線.
說明:通過權重的形式,可以根據伺服器的效能,動態的分配連線.一般公司配置使用權重的方式
2.5.3 IP_hash配置
需求:如何實現Session共享????
問題描述:當使用者登陸一臺伺服器時,在伺服器內部儲存了使用者的Session資訊.如果使用者再次發出請求後,將不能保證使用者訪問的依然是登陸過的伺服器.這時需要使用者再次登入.這種問題如何解決????
總結問題:由於使用者訪問的伺服器不固定,導致Session不能共享.
解決辦法:通過IP_Hash
說明:通過使用者的IP地址,在nginx中內部進行雜湊值執行.最終繫結唯一的一臺伺服器.
總結:
通過IP_hash的計算,將伺服器與使用者的IP地址進行了繫結.實現了Session的共享.---------Session黏著!
通過IP_hash能夠解決簡單的Session共享問題.大型公司不會使用該方式(新SSO)
圖例說明:
如果在配置檔案中配置了IP_hash,輪詢和權重將不起作用.
2.5.4 備用機機制
說明:如果nginx中的伺服器都處於滿負荷狀態.無暇顧及新的連線.這時備用機才會生效.如果主伺服器.處理完請求後處於正常狀態.這時備用機處理等待狀態.
2.5.5 通過Nginx如何實現專案部署
需求:需要將war包部署到伺服器中????
方法:通過Nginx下線伺服器處理
如果在server後邊新增down配置.則nginx不會再將請求發往該伺服器.當伺服器部署完成後,將down去掉,之後重啟nginx伺服器.表示部署完成.由於nginx的開啟和關閉的是速度很快,所有使用者沒有感覺!!!
3 Linux的專案部署
3.1 虛擬機器啟動
3.1.1 解壓檔案
說明:通過VMware開啟VMX檔案即可
開啟以後的效果
3.1.2 Linux操作作業系統的種類
特點:
- Linux作業系統在伺服器端大量的使用
- Linux系統安全性更好
- Linux系統穩定性更強 2周維護一次---一個月(運維)
- Linux作業系統全部都是基於檔案的
- 克隆linux系統
3.1.3 克隆作業系統
2.建立連結克隆之後修改名稱和路徑
3.2 Linux網路配置
3.2.1 橋接模式
3.2.2 NAT模式
說明:採用NAT模式後,只要固定了IP地址,可以永久的訪問.不用修改程式碼
查詢命令:ifconfig
3.2.3 固定IP地址
3.2.4 安裝xShell檔案
說明:XShell是遠端連線Linux作業系統的工具.通過xShell連線遠端的Linux作業系統
之後輸入使用者名稱和密碼連結程式
說明:如果出現該提示資訊表示xShell連線虛擬機器連線成功
3.2.5 建立快照
3.2.6 Linux系統命令
使用者名稱密碼:root root
1.cd / 回到根目錄
2.ls 查詢當前資料夾中的檔案
3.ll 查詢資料夾的詳細資訊
4.pwd 查詢當前資料夾的路徑
5. mkdir java tomcats 建立多個資料夾
6.mkdir -p aa bb/cc 建立多個資料夾
7.rm -rf aa bb
8.rm 檔名稱 y/n y
9.vim aa.txt
1.如果沒有aa.txt檔案則建立
2.如果含有aa.txt檔案則編輯
3.I:表示編輯
4.Esc 退出模式模式
5.:wq 儲存退出
6.Esc+u 撤銷
3.3 JDK的配置
3.3.1 傳輸JDK
選中資料夾之後 拖拽到系統中(資料夾路徑固定)
3.3.2 解壓JDK
3.3.3 配置環境變數
說明: vim /etc/profile 表示編輯環境變數
3.3.4 讓配置生效
3.3.5 測試JDK配置是否成功