nginx 是⼀個⾼效能的http和反向**web伺服器,核⼼特點是占有記憶體少,併發能⼒強
nging 應用場景:
負載均衡就是為了解決⾼負載的問題。
安裝nginx依賴,pcre、openssl、gcc、zlib(推薦使⽤yum源⾃動安裝)
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
解包nginx軟體包【tar -xvf nginx-1.17.8.tar】
進⼊解壓之後的⽬錄 nginx-1.17.8【cd nginx-1.17.8】
命令⾏執⾏./configure
命令⾏執⾏ make
命令⾏執⾏ make install,完畢之後在/usr/local/下會產⽣⼀個nginx⽬錄
進⼊sbin⽬錄中,執⾏啟動nginx命令
預設埠80
nginx主要命令:nginx的核⼼配置⽂件conf/nginx.conf包含三塊內容:全域性塊、events塊、http塊
從配置⽂件開始到events塊之間的內容,此處的配置影響nginx伺服器整體的運⾏,⽐如worker程序的數量、錯誤⽇志的位置等
events塊主要影響nginx伺服器與⽤戶的⽹絡連線,⽐如worker_connections 1024,標識每個 workderprocess ⽀持的最⼤連線數為1024
http塊是配置最頻繁的部分,虛擬主機的配置,監聽端⼝的配置,請求**、反向**、負載均衡等
這⾥主要就是多location的使⽤,這⾥的nginx中 server/location 就好⽐ tomcat 中的 host/context
location 語法如下:
location [=||*|^~] /uri/
在nginx配置⽂件中,location主要有這⼏種形式:
正則匹配 location ~ /lagou
不區分⼤⼩寫的正則匹配 location ~* /lagou
匹配路徑的字首 location ^~ /lagou
精確匹配 location = /lagou
普通路徑字首匹配 location /lagou
優先順序:4 > 3 > 2 > 1 > 5
預設策略,每個請求按時間順序逐⼀分配到不同的伺服器,如果某⼀個伺服器下線,能⾃動剔除
upstream lagouserver
location /abc
weight代表權重,預設每⼀個負載的伺服器都為1,權重越⾼那麼被分配的請求越多(⽤於伺服器效能不均衡的場景)
upstream lagouserver
每個請求按照ip的hash結果分配,每⼀個客戶端的請求會固定分配到同⼀個⽬標伺服器處理,可以解決session問題
upstream lagouserver
動靜分離就是講動態資源和靜態資源的請求處理分配到不同的伺服器上,⽐較經典的組合就是nginx+tomcat架構(nginx處理靜態資源請求,tomcat處理動態資源請求),那麼其實之前的講解中,nginx反向**⽬標伺服器tomcat,我們能看到⽬標伺服器root項⽬的index.jsp,這本身就是tomcat在處理動態資源請求了。
所以,我們只需要配置靜態資源訪問即可。
nginx配置:
nginx啟動後,以daemon多程序⽅式在後台運⾏,包括⼀個master程序和多個worker程序,master程序是領導,是⽼⼤,worker程序是⼲活的⼩弟。
接收外界訊號向各worker程序傳送訊號(./nginx -s reload)
監控worker程序的運⾏狀態,當worker程序異常退出後master程序會⾃動重新啟動新的worker程序等
nginx程序模型示意圖如下:
master程序對配置⽂件進⾏語法檢查
嘗試配置(⽐如修改了監聽端⼝,那就嘗試分配新的監聽端⼝)
嘗試成功則使⽤新的配置,新建worker程序
新建成功,給舊的worker程序傳送關閉訊息
舊的worker程序收到訊號會繼續服務,直到把當前程序接收到的請求處理完畢後關閉
所以reload之後worker程序pid是發⽣了變化的
master程序建立之後,會建⽴好需要監聽的的socket,然後從master程序再fork出多個worker程序。所以,所有worker程序的監聽描述符listenfd在新連線到來時都變得可讀。
nginx使⽤互斥鎖來保證只有⼀個workder程序能夠處理請求,拿到互斥鎖的那個程序註冊listenfd讀事件,在讀事件⾥調⽤accept接受該連線,然後解析、處理、返回客戶端
每個worker程序都是獨⽴的,不需要加鎖,節省開銷
每個worker程序都是獨⽴的,互不影響,⼀個異常結束,其他的照樣能提供服務
多程序模型為reload熱部署機制提供了⽀撐
我只是覺得自己不僅僅如此,所以在努力呀!
Nginx簡介及配置實戰
目錄 一 簡介 二 應用場景 三 nginx安裝 四 nginx常用命令 五 預設配置檔案說明 六 反向 配置例項 七 負載均衡配置例項 nginx 是乙個高效能的http和反向 web伺服器,同時也提供了imap pop3 smtp服務。其特點是占有記憶體少,併發能力強,事實上nginx的併發能力...
Nginx 介紹及安裝
nginx和apache一樣,是一種web伺服器。基於rest風格,以uri和url作為溝通,通過http協議提供各種網路服務。但是apache屬於重量級,不支援高併發,nginx相反它是輕量級的 伺服器,支援高併發。高效能的http和反向 web伺服器,輕量級 底層c語言編寫 提供imap pop...
nginx介紹及安裝
nginx 發音同engine x 是一款由俄羅斯程式設計師igor sysoev所開發輕量級的網頁伺服器 反向 服 務器以及電子郵件 imap pop3 伺服器。此軟體bsd like協議下發行,可以在unix gnu linux bsd mac os x solaris,以及microsoft ...