天天看點

nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

@[nginx學習筆記]

nginx概述及安裝

1配置執行個體–反向代理

實作浏覽器中輸入www.abc.com 跳轉到nginx 中tomcat 頁面

準備工作

在linux系統中安裝Tomcat,使用預設端口 8080

tomcat 安裝檔案放到 liunx 系統中,解壓,進入 tomcat 的 bin 目錄中,./startup.sh 啟動 tomcat 伺服器

對外開放通路的端口

firewall-cmd --add-port=8080/tcp --permanent

firewall-cmd –reload

檢視已經開放的端口号

firewall-cmd --list-all

在windows 浏覽器中通路 Tomcat 伺服器

通路過程

具體配置

1 在 windows 系統的 host 檔案進行域名和 ip 對應關系的配置

nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

2 在 nginx 進行請求轉發的配置(反向代理配置)

nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

這樣就可以通過www.abc.com 通路nginx 中的Tomcat服務

Nginx 配置執行個體-反向代理執行個體 2

1、實作效果

使用 nginx 反向代理,根據通路的路徑跳轉到不同端口的服務中

nginx 監聽端口為 9001

通路 http://192.168.17.129:9001/edu/ 直接跳轉到 127.0.0.1:8080

通路 http:// 192.168.17.129:9001/vod/ 直接跳轉到 127.0.0.1:8081

2、準備工作

(1)準備兩個 tomcat 伺服器,一個 8080 端口,一個 8081 端口

(2)建立檔案夾和測試頁面

3、具體配置

(1)找到 nginx 配置檔案,進行反向代理配置

nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

這樣就可以根據不同的路徑通路不同端口。

Nginx 配置執行個體-負載均衡

1、實作效果

(1)浏覽器位址欄輸入位址 ,負載均衡效果,平均 8080

和 8081 端口中

2、準備工作

(1)準備兩台 tomcat 伺服器,一台 8080,一台 8081

(2)在兩台 tomcat 裡面 webapps 目錄中,建立名稱是 edu 檔案夾,在 edu 檔案夾中建立

頁面 a.html,用于測試`

3、在 nginx 的配置檔案中進行負載均衡的配置

upstream myserver{
server 192.168.17.129:8080
server 192.168.17.129:8081
}
           
nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

4、nginx 配置設定伺服器政策

第一種 輪詢(預設)

每個請求按時間順序逐一配置設定到不同的後端伺服器,如果後端伺服器 down 掉,能自動剔除。

第二種 weight

weight 代表權重預設為 1,權重越高被配置設定的用戶端越多

第三種 ip_hash

每個請求按通路 ip 的 hash 結果配置設定,這樣每個訪客固定通路一個後端伺服器

第四種 fair(第三方)

按後端伺服器的響應時間來配置設定請求,響應時間短的優先配置設定。

Nginx 配置執行個體-動靜分離

通過 location 指定不同的字尾名實作不同的請求轉發。通過 expires 參數設定,可以使浏

覽器緩存過期時間,減少與伺服器之前的請求和流量。具體 Expires 定義:是給一個資源

設定一個過期時間,也就是說無需去服務端驗證,直接通過浏覽器自身确認是否過期即可,

是以不會産生額外的流量。此種方法非常适合不經常變動的資源。(如果經常更新的檔案,

不建議使用 Expires 來緩存),我這裡設定 3d,表示在這 3 天之内通路這個 URL,發送一

個請求,比對伺服器該檔案最後更新時間沒有變化,則不會從伺服器抓取,傳回狀态碼 304,

如果有修改,則直接從伺服器重新下載下傳,傳回狀态碼

準備工作

(1)在 liunx 系統中準備靜态資源,用于進行通路

nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

3、具體配置

(1)在 nginx 配置檔案中進行配置

nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

Nginx 配置高可用叢集

Keepalived+Nginx 高可用叢集(主從模式)

準備工作

需要兩台伺服器

在兩台伺服器安裝 nginx

在兩台伺服器安裝 keepalived

需要虛拟ip

安裝 keepalived

使用 yum 指令進行安裝

yum install keepalived –y

安裝之後,在 etc 裡面生成目錄 keepalived,有檔案 keepalived.conf

完成高可用配置(主從配置)

修改/etc/keepalived/keepalivec.conf 配置檔案

global_defs {
 notification_email {
 [email protected]
 [email protected]
 [email protected]
 }
 notification_email_from [email protected]
 smtp_server 192.168.17.129
 smtp_connect_timeout 30
 router_id LVS_DEVEL  # 主機名
}
vrrp_script chk_http_port {
 script "/usr/local/src/nginx_check.sh"
 interval 2 #(檢測腳本執行的間隔)
 weight 2
}

vrrp_instance VI_1 {
 state BACKUP # 備份伺服器上将 MASTER 改為 BACKUP 
 interface ens33 //網卡
 virtual_router_id 51 # 主、備機的 virtual_router_id 必須相同
 priority 90 # 主、備機取不同的優先級,主機值較大,備份機值較小
 advert_int 1
  authentication {
 auth_type PASS
 auth_pass 1111
 }
 virtual_ipaddress {
 192.168.17.50 // VRRP H 虛拟位址
 } }
           

把兩台伺服器上 nginx 和 keepalived 啟動

啟動 nginx:./nginx

啟動 keepalived:systemctl start keepalived.service

最後在浏覽器位址欄輸入 虛拟 ip 位址 192.168.17.50就可以通路啦,

如果把主nginx 斷掉,可以自動切換成副的,依舊能通路

Nginx的原理

nginx 配置執行個體 反向代理 負載均衡 動靜分離 高可用叢集 nginx 原理

一個 master 和多個 woker 有好處

(1)可以使用 nginx –s reload 熱部署,利用 nginx 進行熱部署操作

(2)每個 woker 是獨立的程序,如果有其中的一個 woker 出現問題,其他 woker 獨立的,

繼續進行争搶,實作請求過程,不會造成服務中斷

4、設定多少個 woker 合适

worker 數和伺服器的 cpu 數相等是最為适宜的

5、連接配接數 worker_connection

第一個:發送請求,占用了 woker 的幾個連接配接數?

答案:2 或者 4 個 如果通路靜态資源就2個 動态資源就是4個

第二個:nginx 有一個 master,有四個 woker,每個 woker 支援最大的連接配接數 1024,支援的

最大并發數是多少?

普通的靜态通路最大并發數是: worker_connections * worker_processes /2, 而如果是 HTTP 作 為反向代理來說,最大并發數量應該是 worker_connections *

worker_processes/4。

一個具有注腳的文本。1

  1. 如果有錯誤,請提示我更正 ↩︎

繼續閱讀