1. 程式人生 > 實用技巧 >3. 二維陣列中的查詢

3. 二維陣列中的查詢

一.概念
1.是什麼,做什麼的
高效能HTTP和反向代理伺服器,特點是佔用記憶體少,併發力強。專門未效能優化而開發,能支援50000個併發連線
2.反向代理
(1)正向代理
再伺服器端配置代理伺服器進行訪問網際網路內容
(2)反向代理
客戶端對代理是無感知的,因為客戶端不許要配置就可以訪問,客戶端將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料後,再返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個完整的伺服器,暴露在外的是代理伺服器地址,隱藏了真實的伺服器IP地址
3.負載均衡
增加伺服器的數量,將請求分發到伺服器上,將原來請求集中到單個伺服器上的情況改為請求分發到多個伺服器上,將負載分發到不同的伺服器上,也就是負載均衡

4.動靜分離
為什麼: 為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析速度,降低原來單個伺服器的壓力
通過location指定不同的字尾名實現不同的請求轉發,通過expires引數設定,可以使瀏覽器快取過期時間,減少與伺服器之間的請求與流量,expires定義:是個一個資源設定一個過期時間,也就是說無需去服務點驗證,直接通過瀏覽器自身確認是否過期即可,所以不會產生額外的流量。此種方法適合不經常變動的資源,設定3d表示三天之內訪問這個URL,傳送一個請求,比對伺服器該檔案的最後更新時間有沒有發生變化,若沒有則不會從伺服器獲取資料,返回給瀏覽器狀態碼304(讓他用快取),若發生變化,則重新從伺服器獲取,返回狀態碼200
二.nginx安裝與配置
1.安裝與配置

# yum -y install vim* //安裝vim編輯器
# yum -y install gcc gcc-c++ autoconf automake //gcc、gcc-c++庫檔案(-y:全部yes,autoconf:自動配置,automake:自動編譯)
# yum -y install pcre pcre-devel //Nginx依賴包
# yum -y install zlib zlib-devel
# yum -y install openssl openssl-devel //openssl庫

# wget -P /usr/local http://
nginx.org/download/nginx-1.12.2.tar.gz # cd /usr/local # tar -zxvf nginx-1.12.2.tar.gz //解壓縮 # cd nginx-1.12.2 # ./configure //配置 # make # make install //安裝 # cd /usr/local //如果存在nginx資料夾,則安裝成功 # cd /usr/local/nginx/sbin //進入啟動目錄 # ./nginx //啟動nginx 訪問服務ip+80埠成功及代表成功 --記得開放LINUX埠 2.常用命令 要先進入nginx的目錄的sbin資料夾 1.檢視nginx版本 ./nginx -v 2.啟動nginx ./nginx 3.關閉nginx ./nginx -s stop (強制退出) 4.重新載入nginx的配置檔案(nginx/conf/nainx.conf) ./nginx -s reload 3.配置檔案 (/usr/local/nginx/conf/nainx.conf)新版本在etc目錄

(1).配置檔案由三部分組成
第一部門 全域性快
從配置檔案開始到events塊之間都是全域性快,主要設定一些影響nginx伺服器整體執行的配置指令,主要包括配置執行nginx伺服器的使用者(組)。允許生成的worker process數,程序PID存放路徑,日誌存放路徑和型別以及配置檔案的引入等
第一行: worker_processes值越大,可以支援的併發量越多-- worker角色的程序個數,根據CPU個數而定

 worker_processes  1;                    
         第二部門   events塊
                   events塊涉及的指令主要影響nginx伺服器與使用者的網路連線
 worker_connections  1024;   支援最大連線數

        第三部分  http塊
               包含http全域性塊,server快

三.配置例項--反向代理

在配置檔案中修改

實現訪問路勁中有esc/edu分發到8081/8080埠所在伺服器
先配置兩個tomcat伺服器並且修改埠,再修改nginx配置檔案

訪問:

location
語法規則: location [=|~|~*|^~] /uri/ { … }
= 開頭表示精確匹配
^~ 開頭表示uri以某個常規字串開頭,理解為匹配 url路徑即可。nginx不對url做編碼,因此請求為/static/20%/aa,可以被規則^~ /static/ /aa匹配到(注意是空格)。
~ 開頭表示區分大小寫的正則匹配
~*  開頭表示不區分大小寫的正則匹配
!~和!~*分別為區分大小寫不匹配及不區分大小寫不匹配 的正則
/ 通用匹配,任何請求都會匹配到。

四.配置例項--負載均衡

nginx分配伺服器策略

1.輪詢(預設)
每個請求安時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉,會自動剔除
2.weight(權重)
weight代表權重預設為1,權重越高被分配到的請求越多,在後面直接加上weight和數值就行

3.IP_HASH
每個請求按照訪問IP的hash結果分配,同一個客戶端的請求會被分配到相同的後端伺服器
配置方式


4.fair(第三方)
根據服務端的響應時間來分配,響應時間越短,分配越多
配置方式

五.配置例項--動靜分離

在伺服器中新增靜態檔案

配置檔案

訪問效果