@[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 對應關系的配置
2 在 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 配置執行個體-負載均衡
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
}
4、nginx 配置設定伺服器政策
第一種 輪詢(預設)
每個請求按時間順序逐一配置設定到不同的後端伺服器,如果後端伺服器 down 掉,能自動剔除。
第二種 weight
weight 代表權重預設為 1,權重越高被配置設定的用戶端越多
第三種 ip_hash
每個請求按通路 ip 的 hash 結果配置設定,這樣每個訪客固定通路一個後端伺服器
第四種 fair(第三方)
按後端伺服器的響應時間來配置設定請求,響應時間短的優先配置設定。
Nginx 配置執行個體-動靜分離
通過 location 指定不同的字尾名實作不同的請求轉發。通過 expires 參數設定,可以使浏
覽器緩存過期時間,減少與伺服器之前的請求和流量。具體 Expires 定義:是給一個資源
設定一個過期時間,也就是說無需去服務端驗證,直接通過浏覽器自身确認是否過期即可,
是以不會産生額外的流量。此種方法非常适合不經常變動的資源。(如果經常更新的檔案,
不建議使用 Expires 來緩存),我這裡設定 3d,表示在這 3 天之内通路這個 URL,發送一
個請求,比對伺服器該檔案最後更新時間沒有變化,則不會從伺服器抓取,傳回狀态碼 304,
如果有修改,則直接從伺服器重新下載下傳,傳回狀态碼
準備工作
(1)在 liunx 系統中準備靜态資源,用于進行通路
3、具體配置
(1)在 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的原理
一個 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
- 如果有錯誤,請提示我更正 ↩︎