一、簡介
Nginx是一個高性能的http和反向代理的web服務器,特點是占有記憶體少,支持高并發,主要用的功能有反向代理、負載均衡、動靜分離,
-
常用命令(到nginx的安裝目錄下):
啟動——./nginx
停止——./nginx -s stop
多載——./nginx -s reload
查看版本——./nginx -v -
組態檔的三大部分:
1.全域塊
影響整體運行的資訊,比如worker數、日志位置、用戶組等
2.Events塊
主要影響服務器和用戶之間的網連接數,如worker_connections,配置單個process的最大并發請求數
3.http塊
實際專案中配置最為頻繁的了,代理的路徑、負載均衡、動靜分離等都在這里配置
1)http全域塊
包括日志自定義、連接超時時間、單鏈接的請求數上限等;
2)Server塊
一個http塊可以有多個server塊,而一個server塊就相當于一個虛擬主機,
Server塊也分為全域server塊和location塊
a.Server塊
配置本虛擬機的監聽配置(埠)、名稱或IP
b.Location塊
一個server塊可以有多個location塊,這里主要是對nginx服務器收到的請求,除ip和埠外字串進行匹配(如127.0.0.1:8080/getLIst,則匹配/getList),匹配后進行請求的轉發等處理
二、主要的功能
1、反向代理
通過讓用戶配置路由,實作請求轉發的叫正向代理,而nginx則是通過收到客戶的請求后,轉發到自己配置的服務器,用戶不需要知道真正的服務器地址,只需要請求nginx的服務器即可,這種我們稱之為反向代理,

2、負載均衡
一個請求對應對臺服務器,有對應的配置并提供了4種負載均衡的策略,默認是輪詢,除此之外還有權重、ip_hash(每個IP的請求會固定的轉發到某臺服務器)、fair(根據服務器的回應時間來轉發請求)


- 權重

- ip_hash

- fair

3、動靜分離
把對靜態資源的請求和要轉發的請求分隔開,還可以對靜態資配置過期時間等,降低連接的開銷

三、什么是高可用
當nginx服務器宕機后,需要自動切換到備用服務器;
這里是用keepalived中間件來實作,大致步驟是:主從服務器都安裝keepalived后,在其組態檔中配置相關資訊,并暴漏出一個或多個虛擬的ip,后續請求就直接請求到虛擬IP即可,實作nginx的高可用(主從模式原理)

四、原理
一個nginx啟動后,有一個master行程和一個或多個worker行程,

- Master接收到請求后,通知所有worker去搶這個“作業”,由搶到的worker去執行對應的請求操作;
- Worker并非越多越好,一般看服務器的cpu數,如果能夠實作cpu和對應的worker系結,則效果最佳;
- Nginx最大連接數=worker_processworker_connection/2 或者
worker_processworker_connection/4; - Master-workers模式的好處:1、每個worker行程獨立,省去了鎖機制的開銷;2、方便實作./nginx -s reload熱部署的實作,
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/287363.html
標籤:其他
上一篇:物聯網平臺:一份全面前端知識總結
