servlet關於HttpServletRequest 物件
介紹
-
Nginx:
Nginx (engine x) 是一個高效能的HTTP和反向代理web伺服器,同時也提供了IMAP/POP3/SMTP服務。
-
-
正向代理:是一個位於客戶端和原始伺服器(origin server)之間的伺服器,為了從原始伺服器取得內容,客戶端向代理髮送一個請求並指定目標(原始伺服器),然後代理向原始伺服器轉交請求並將獲得的內容返回給客戶端。客戶端才能使用正向代理。(翻牆)
-
反向代理:反向代理伺服器位於使用者與目標伺服器之間,但是對於使用者而言,反向代理伺服器就相當於目標伺服器,即使用者直接訪問反向代理伺服器就可以獲得目標伺服器的資源。同時,使用者不需要知道目標伺服器的地址,也無須在使用者端作任何設定。反向代理伺服器通常可用來作為Web加速,即使用反向代理作為Web伺服器的前置機來降低網路和伺服器的負載,提高訪問效率。
-
優點:
-
可以高併發連線
-
官方測試Nginx能夠支撐5萬併發連線,實際生產環境中可以支撐2~4萬併發連線數。
-
-
記憶體消耗少
-
成本低廉
-
配置檔案非常簡單
-
支援Rewrite重寫
-
能夠根據域名、URL的不同,將http請求分到不同的後端伺服器群組。
-
-
內建的健康檢查功能
-
如果NginxProxy後端的某臺Web伺服器宕機了,不會影響前端的訪問。
-
-
節省頻寬
-
穩定性高
-
用於反向代理,宕機的概率微乎其微。
-
-
支援熱部署
工作原理
-
Nginx是由核心和模組組成的。其中,核心的設計非常的微小和簡潔,完成的工作也非常的簡單,僅僅通過查詢配置檔案將客戶端的請求對映到location block(location是Nginx配置中的一個指令,用於URL匹配)而在這個location中配置的每個指令將會啟動不同的模組完成相應的工作。
-
核心模組:HTTP模組、Event模組、Mail模組
-
基礎模組:HTTP Access模組、HTTP FastCGl模組、HTTP Proxy模組、HTTP Rewrite模組
-
第三方模組:HTTP Request Hash模組、Notice模組、HTTP Access Key模組
-
Nginx的高併發優勢得益於採用epoll模型,於傳統的伺服器型別不一致(程式的架構不同)
-
epoll模型是在linux核心2.6以後才有的,非同步非阻塞
-
而Apache伺服器採用的是select模型
-
epoll模型原理:對於事件控制代碼的選擇不是遍歷所有事物通知而是事件響應的,就是控制代碼事件上來立馬選擇出來,不需要遍歷整個事件控制代碼連結串列,因此效率特別高
-
select模型原理:select選擇控制代碼的時候,是遍歷所有的控制代碼,也就是說控制代碼有事件響應時,select需要遍歷所有的控制代碼才能獲得哪些控制代碼上有事件通知,因此效率非常低。
安裝配置(linux版)
-
下載Nginx :wget http://nginx.org/download/nginx-1.13.0.tar.gz
-
解壓
-
編譯:切換nginx安裝目錄,編譯指令./configure
-
解決編譯器找不到問題:
-
yum install gcc gcc-c++ ncurses-dev perl
-
yum install pcre pcre-devel
-
yum install zlib gzip zlib-devel
-
-
重新編譯
-
安裝Nginx服務:make & make install
-
啟動Nginx服務:進入sbin裡,./nginx
-
檢視是否啟動成功:ps -ef | grep nginx
常用命令
-
重啟nginx:./nginx -s reload
-
關閉nginx:./nginx -s stop
Nginx管理虛擬機器
-
三大配置
-
基於域名的虛擬機器配置
-
進入配置檔案 vi /usr/local/nginx/conf/nginx.conf
-
server {
listen 80;
server_name zhiyou100.com;
location / {
root view;
index login.html;
#在Nginx的安裝目錄下 建個view目錄,在裡面存個login.html檔案
}
-
-
-
重啟Nginx
-
進入sbin目錄:./nginx -s reload
-
-
配置本地域名對映
-
進入微軟的C:\Windows\System32\drivers\etc目錄
-
編輯hosts檔案 新增192.168.75.128 zhiyou100.com
-
-
-
基於埠號的虛擬機器配置
-
基於IP的虛擬機器配置
-
server_name 欄位 同樣可以存放IP地址(虛擬機器的IP地址)
-
負載均衡
-
企業中在解決高併發問題,一般有兩種方向的處理策略:軟體和硬體
-
從硬體上面來說,公司會新增負載均衡器來分發大量請求
-
從軟體方面來說,公司解決高併發瓶頸處:資料庫+web伺服器兩處新增解決方案
-
其中web伺服器是最常用的一種解決方案,新增負載均衡就是使用Nginx實現負載均衡
負載均衡的作用
-
轉發功能
-
按照一定的演算法(輪詢、權重)將客戶端請求轉發到不同的應用伺服器上面,減輕單個伺服器的壓力,提高系統的併發質量。
-
-
故障排除
-
通過心跳檢測的方式,判斷應用伺服器當前是否可以正常工作,如果伺服器宕機了,自動的將請求轉發到其他的應用伺服器上面
-
-
恢復新增
-
如果檢測到發生故障的應用伺服器恢復工作,那麼它會自動把恢復的應用伺服器新增進去。
-
搭載負載均衡
-
克隆虛擬機器
-
開啟虛擬機器,確保虛擬機器處於關機狀態
-
點選拍攝快照,定義名字
-
點選克隆
-
點選下一步後,選擇建立完整克隆-->指定克隆虛擬機器的映象位置
-
修改虛擬機器名稱:
hostnamectl set-hostname slave1(虛擬機器名稱)
-
檢視名稱是否修改成功:hostname
-
重新啟動虛擬機器:reboot
-
-
搭建tomcat叢集開發步驟
-
開啟三個tomcat,每個虛擬機器都啟動
-
檢視tomcat是否啟動成功,輸入jps,出現bootstrap就說明啟動成功
-
-
-
配置Nginx的核心配置檔案
-
#配置多個tomcat所在的伺服器IP
upstream tomcatServer1{
server 192.168.75.129:8080 weight=3; #ip和埠號 權重 red
server 192.168.75.128:8080; #yellow
server 192.168.75.130:8080 weight=5;
}
server{
listen 80;
server_name zhiyou200.com;
location / {
proxy_pass http://tomcatServer1; #代理
}
} -
配置web伺服器叢集的時候,在nginx中可以設定幾個變數或者引數
-
weight (權重) :值越大,承擔負載均衡的壓力就越大(訪問次數增多)
-
按照配置文件中設定就是 1+3+5 =9,訪問zhiyou200.com網頁9次中,其中背景為紅色的頁面一共出現三次,黃色頁面為一次,白色頁面為五次
-
-
max_fails :允許失敗的最大請求次數
-
backup (閒置,備用機): 其他所有的非backup伺服器宕機或者忙機狀態的時候,請求backup指定的伺服器
-
fail_timeout : 失敗超時時間
-
-
-
部署專案
-
第一步
-
修改tomcat的配置檔案server.xml /usr/local/tomcat/conf/server.xml
-
修改tomcat預設的訪問專案名稱和專案的釋出路徑,docBase就是war包名稱(虛擬目錄/專案名稱)
<Context path="" docBase="video" reloadable="true"/>
-
-
第二步
-
修改springmvc配置檔案,指定預設的訪問路徑
-
<mvc:view-controller path="/" view-name="forward:/front/user/index.do"/>
-
然後重新打成war包
-
-
第三步
-
修改nginx的配置檔案 nginx.conf
-
#配置多個tomcat所在的伺服器IP
upstream tomcatServer1{
server 192.168.75.129:8080 weight=3; #ip和埠號 權重
server 192.168.75.128:8080;
server 192.168.75.130:8080 weight=5;
ip_hash;#可以解決session共享
}
server{
listen 80;
server_name zhiyou200.com;
location /{
proxy_pass http://tomcatServer1; #代理
index /;#新增上該行
}
}
-
-
第四步
-
解決樣式找不到問題
-
如果把tomcat的埠號改為80,樣式就可以顯示出來,但是這會和nginx的埠號產生衝突,所以一般不把開啟nginx的那臺伺服器去開啟tomcat
-
-
-
-