Nginx是什么?
一個高性能的Http服務器和反向代理web服務器, 特點是內(nèi)存消耗低, 并發(fā)能力強.
Nginx使用場景
- Http服務器
性能非常高, 非常注重效率, 能夠承受高負載的考驗
支持50000個并發(fā)連接數(shù), 不僅如此, CPU和內(nèi)存占有率比較低, 10000個沒有活動的鏈接, 才占內(nèi)存2.5M
反向代理
正向代理 : 在瀏覽器中配置代理服務器的相關信息贮懈,通過代理服務器訪問目標網(wǎng)站寺枉,代理服務器收
到目標網(wǎng)站的響應之后煮仇,會把響應信息返回給我們自己的瀏覽器客戶端
反向代理 : 瀏覽器客戶端發(fā)送請求到反向代理服務器(比如Nginx)痹愚,由反向代理服務器選擇原始 服務器提供服務獲取結果響應虫碉,最終再返回給客戶端瀏覽器
負載均衡服務器
主要是解決了高負載的問題
- 動靜分離
Nginx特點
- 跨平臺 : windows與 unix 系統(tǒng)上可編譯運行
- Nginx 上手比較容易, 配置也比較簡單
- 高并發(fā), 性能好
- 穩(wěn)定性特別好, 宕機率比較低
Nginx 配置文件詳解
Location
(等號)= : 完全匹配
(波浪號)~ : 正則匹配, 區(qū)分大小寫
(波浪號+星號) ~* : 正則匹配, 不區(qū)分大小寫
(拖字符+波浪號)^~ : 普通匹配, 匹配前綴有效, 配置生效
@ : 定義一個location寓免,用于處理內(nèi)部重定向
負載均衡策略
輪詢 : 按照時間順序逐一分配給服務器, 如果某一個服務器下線, 能自動剔除
權重(Weight) : 權重越高分配的請求越多 , 用于服務器性能不均衡的場景
ip_hash : 每個請求按照ip的hash結果分配,每一個客戶端的請求會固定分配到同一個目標服務器處理纯衍,可
以解決session問題
Nginx底層進程機制剖析
master進程
接受外界信號, 向各worker發(fā)送信號
監(jiān)控worker進程的運行狀態(tài), 當worker進程異常退出后Master進程會自動重新啟動新的 worker進程等
worker進程
worker進程具體處理網(wǎng)絡請求栋齿。多個worker進程之間是對等的苗胀,他們同等競爭來自客戶端的請 求襟诸,各進程互相之間是獨立的。一個請求基协,只可能在一個worker進程中處理歌亲,一個worker進程, 不可能處理其它進程的請求澜驮。worker進程的個數(shù)是可以設置的陷揪,一般設置與機器cpu核數(shù)一致。
nginx多進程模型好處
每個worker進程都是獨立的杂穷,不需要加鎖悍缠,節(jié)省開銷 每個worker進程都是獨立的,互不影響耐量,一個異常結束飞蚓,其他的照樣能提供服務 多進程模型為reload熱部署機制提供了支撐
Nginx 灰度環(huán)境發(fā)布