antd table之disabled的複選框被選中了?
一、Nginx基本概念
1、Nginx是什麼?做什麼事情?
Nginx是一個高效能的HTTP和反向代理伺服器,特點是佔用記憶體少,併發能力強,事實上Nginx的併發能力確實在同類型的網頁伺服器中表現較好
Nginx專為效能優化而開發, 效能是其最重要的考量,實現上非常注重效率,能經受高負載的考驗,有報告表明能支援高達50000個併發連線數
2、反向代理
-
正向代理
在客戶端(瀏覽器)配置代理伺服器,通過代理伺服器進行網際網路訪問
-
反向代理
我們只需要將請求傳送到反向代理伺服器,由反向代理伺服器去選擇目標伺服器獲取資料後,再返回給客戶端,此時反向代理伺服器和目標伺服器對外就是一個伺服器,暴露的是代理伺服器地址,隱藏了真實伺服器的IP地址
3、負載均衡
單個伺服器解決不了,增加伺服器的數量,然後將請求分發到各個伺服器上,將原先請求集中到單個伺服器上的情況改為將請求分發到多個伺服器上,將負載分發到不同的伺服器,也就是我們所說的負載均衡
4、動靜分離
為了加快網站的解析速度,可以把動態頁面和靜態頁面由不同的伺服器來解析,加快解析速度,降低原來單個伺服器的壓力
二、Nginx的安裝
1. 使用遠端連線工具連線Linux作業系統
2. 到Nginx官網下載軟體:http://nginx.org/
3. 開始安裝:
-
聯網下載pcre壓縮檔案依賴:wget http://downloads.sourceforge.net/project/pcre/pcre/8.37/pcre-8.37.tar.gz
-
解壓壓縮檔案: tar –xvf pcre-8.37.tar.gz
-
./configure 完成後,回到 pcre 目錄下執行 make,最後執行 make install
-
安裝 openssl 、zlib 、 gcc 依賴yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
-
安裝 nginx
-
使用命令解壓
-
./configure
-
make && make install進入目錄 /usr/local/nginx/sbin/nginx 啟動服務
-
-
在 windows 系統中訪問 linux 中 nginx,預設不能訪問的,因為防火牆問題(1)關閉防火牆(2)開放訪問的埠號,80 埠
-
詳情見centos.txt檔案
三、Nginx的配置檔案
1.nginx 配置檔案位置
cd /usr/local/nginx/conf/nginx.conf
2. 配置檔案中的內容
包含三部分內容:
(1)全域性塊:配置伺服器整體執行的配置指令
比如 worker_processes 1;處理併發數的配置
(2)events 塊:影響 Nginx 伺服器與使用者的網路連線
比如 worker_connections 1024; 支援的最大連線數為 1024
(3)http 塊:這算是Nginx伺服器配置中最頻繁的部分,代理、快取和日誌定義等絕大數功能和第三方模組的配置都在這裡
其還包含兩部分:
http全域性塊:全域性快配置的指令包括檔案引入、HIME-TYPE定義,日誌自定義、連線超時時間、單鏈接請求數上限等
server塊:和虛擬機器有密切的關係,虛擬主機從使用者角度看,和一臺獨立的硬體主機是完全一樣的,該技術的產生是為了節省網際網路伺服器硬體成本
四、Nginx配置例項-反向代理(1)
1、實現效果
開啟瀏覽器,在瀏覽器位址列輸入地址www.123.com,跳轉到Linux系統tomcat主頁面中
2、準備工作
-
在Linux系統安裝tomcat,使用預設埠8080
-
tomcat安裝檔案放到Linux系統中,解壓
-
進入tomcat的bin目錄下,./startuo.sh啟動tomcat伺服器
-
-
對外開放訪問的埠
詳情見centos.txt文字
-
在windows系統中通過瀏覽器訪問tomcat伺服器
-
在windos系統中的host進行域名和ip對應關係的配置,地址:C:\Windows\System32\drivers\etc
-
新增內容:192.168.80.129 www.123.com
-
-
在Nginx中進行請求轉發的配置(反向代理)
-
最終測試:
Nginx配置例項-反向代理(2)
1、實現效果
使用Nginx反向代理,根據訪問的路徑跳轉到不同埠的服務中,Nginx監聽埠為9001:
訪問http://192.168.80.129:9001/edu/ 直接跳轉到127.0.0.1:8080
訪問http://192.168.80.129:9001/vod/ 直接跳轉到127.0.0.1:8081
2、準備工作
-
準備兩個tomcat伺服器,一個8080埠,一個8081埠
-
建立資料夾和測試頁面
3、具體配置
-
找到Nginx的配置檔案,進行反向代理配置
-
開放對外訪問的埠號
4、最終測試
訪問地址:http://192.168.80.129:9091/edu/edu.html
五、Nginx配置例項-負載均衡
1、實現效果
瀏覽器位址列輸入地址http://192.168.80.129/edu/edu.html,負載均衡效果,平均8080和8081埠中
2、準備工作
-
準備兩臺tomcat伺服器,一臺8080,一臺8081
-
在兩臺tomcat裡面webapp目錄中,建立名稱是edu資料夾,在edu資料夾中建立頁面,用於測試
3、具體配置
-
在Nginx的配置檔案中進行負載均衡的配置
4、Nginx分配伺服器策略
-
輪詢(預設)
每個請求 按時間順序逐一分配到不同的後端伺服器,如果後端伺服器down掉, 能自動剔除
-
weight
權重,預設為1,權重越高被分配的客戶端越多
server 192.168.80.129:8080 weight=5;
server 192.168.80.129:8081 weight=10;
-
ip_hash
每個請求按訪問ip的hash結果分配,這樣每個訪客固定訪問一個後端伺服器,可以解決session的問題
ip_hash;
server 192.168.80.129:8080;
server 192.168.80.129:8081;
-
fair(第三方)
按後端伺服器的響應時間來分配請求,響應時間短的優先分配
server 192.168.80.129:8080;
server 192.168.80.129:8081;
fair;
六、Nginx配置例項-動靜分離
1 、什麼是動靜分離
通過 location 指定不同的字尾名實現不同的請求轉發。通過 expires 引數設定,可以使瀏覽器快取過期時間,減少與伺服器之前的請求和流量。具體 Expires 定義:是給一個資源設定一個過期時間,也就是說無需去服務端驗證,直接通過瀏覽器自身確認是否過期即可,所以不會產生額外的流量。此種方法非常適合不經常變動的資源。(如果經常更新的檔案,不建議使用 Expires 來快取),我這裡設定 3d,表示在這 3 天之內訪問這個 URL,傳送一個請求,比對伺服器該檔案最後更新時間沒有變化,則不會從伺服器抓取,返回狀態碼 304,如果有修改,則直接從伺服器重新下載,返回狀態碼 200。
2、準備工作
-
在Linux系統中準備靜態資源,用於進行訪問
3、具體配置
-
在Nginx配置檔案中進行配置
4、最終測試
-
瀏覽器中輸入地址:http://192.168.80.129/image/1.jpg
-
瀏覽器中輸入地址:
七、Nginx配置高可用叢集
1、什麼是Nginx高可用叢集
-
需要兩臺Nginx伺服器
-
需要keepalived
-
需要虛擬ip
2、配置高可用的準備工作
-
需要兩臺伺服器 192.168.80.129 和 192.168.80.130
-
在兩臺伺服器上安裝Nginx
-
在兩臺伺服器上安裝keepalived
3、在兩臺伺服器上安裝keepalived
使用yum命令進行安裝:yum install keepalived -y
檢視是否安裝及版本:rpm -q -a keepalived
安裝之後,在etc目錄裡面生成keepalived目錄,有檔案keepalived.conf
4、完成高可用配置(主從配置)
-
修改/etc/keepalived/keepalived.conf配置檔案
global_defs { #全域性定義
notification_email {
[email protected]
[email protected]
[email protected]
}
notification_email_from [email protected]
smtp_server 192.168.80.130
smtp_connect_timeout 30
router_id LVS_DEVEL #唯一不重複
}
#指令碼配置
vrrp_script chk_http_port {
script "/usr/local/nginx/nginx_check.sh" #檢測指令碼的路徑及名稱
interval 2 #(檢測指令碼執行的間隔)
weight -20 #權重。設定當前伺服器的權重,此處的配置說明:當前伺服器如果宕機了,那麼該伺服器的權重降低20
}
#虛擬IP配置
vrrp_instance VI_1 {
state BACKUP #主伺服器寫、備份伺服器寫BACKUP
interface ens33 #網絡卡
virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
priority 90 #主、備機取不同的優先順序,主機值較大,備份機值較小
advert_int 1 #時間間隔。每隔多少秒傳送一次心跳檢測伺服器是否還活著,預設1秒傳送一次心跳
authentication {
auth_type PASS
auth_pass 1111
}
virtual_ipaddress {
192.168.80.50 // VRRP H 虛擬IP地址,網段要和linux的網段一致,可以繫結多個虛擬ip
} }
-
在/usr/local/src新增指令碼檔案
#!/bin/bash
A=`ps -C nginx –-no-header |wc -l`
if [ $A -eq 0 ];then
/usr/local/nginx/sbin/nginx
sleep 2
if [ `ps -C nginx --no-header |wc -l` -eq 0 ];then
killall keepalived
fi
fi
-
把兩臺伺服器上的Nginx和keepalived啟動
systemctl start keepalived.service
5、最終測試
-
在瀏覽器位址列輸入虛擬ip地址 192.168.80.50
-
把主伺服器Nginx和keepalived停止,再輸入虛擬ip地址
八、Nginx的原理
1、master和worker
2、worker是如何工作的
3、一個master和多個worker的好處
-
可以使用nginx -s reload 熱部署,利於Nginx進行熱部署操作
-
對於每個worker程序來說,都是獨立的程序,不需要加鎖,省掉了鎖帶來的開銷,並當一個worker程序退出後,不會影響到所有的請求,降低了風險
4、需要設定多少個worker
worker數和伺服器的cpu數相等是最為事宜的