這篇文章主要介紹了Nginx 介紹及日常管理的詳解的相關(guān)資料,希望通過本文能幫助到大家舌缤,需要的朋友可以參考下
Nginx 介紹及日常管理的詳解
Nginx(發(fā)音同 engine x)是一款輕量級的Web 服務器/反向代理服務器及電子郵件(IMAP/POP3)代理服務器臀突,并在一個BSD-like 協(xié)議下發(fā)行浑此。其特點是占有內(nèi)存少松靡,并發(fā)能力強允跑,事實上nginx的并發(fā)能力確實在同類型的網(wǎng)頁服務器中表現(xiàn)較好.中國大陸使用nginx網(wǎng)站用戶有:新浪、網(wǎng)易兰绣、 騰訊等世分。本文簡要描述了Nginx的基本特性及其配置文件的簡單描述。
一缀辩、Nginx的工作進程
1臭埋、一個主進程: 主進程的主要目的是讀取和評估配置,啟動臀玄、終止及維護工作進程以及創(chuàng)建瓢阴、綁定及關(guān)閉套接字。 2健无、多個工作進程: 工作進程處理web請求荣恐。nginx的采用了基于事件的模型和操作系統(tǒng)相關(guān)的機制,有效地分配工作進程之間的請求累贤。 負責解析http協(xié)議募胃;提供反向代理及過濾功能;nginx任何能完成的其它任務畦浓; 工作進程的數(shù)量被定義在配置文件中,可以使用配置文件定義固定的數(shù)量检疫,或根據(jù)可用的CPU內(nèi)核數(shù)實現(xiàn)自動調(diào)整其數(shù)量讶请。3、緩存加載器(cache loader): 檢查緩存存儲中的緩存對象; 使用緩存元數(shù)據(jù)建立內(nèi)存數(shù)據(jù)庫夺溢; 接收论巍、傳入并處理來自客戶端的連接;4风响、緩存管理器(cache manager): 緩存的失效及過期檢驗嘉汰;5、基于配置文件定義Nginx的工作方式 nginx的工作方式及其模塊的工作是在配置文件中確定的状勤。 缺省情況下鞋怀,其配置文件為nginx.conf,通常位于/usr/local/nginx/conf, /etc/nginx, 或者/usr/local/etc/nginx目錄下持搜。
二密似、Nginx特性
1、Nginx的模塊化特性 Nginx服務器與Apache httpd類似葫盼,采用了基于模塊化的構(gòu)建方式残腌。 在安裝部署Nginx服務器時,一定要遵循:最小化模塊安裝贫导,以節(jié)省無用模塊對Nginx的性能影響及占用系統(tǒng)資源抛猫。 a、從功能上劃分 Nginx核心模塊:包括Nginx的內(nèi)核模塊和事件驅(qū)動模塊 http服務器模塊:這類模塊包括三類模塊孩灯,即HTTP的內(nèi)核模塊和標準模塊以及可選的HTTP模塊 b闺金、從發(fā)布模塊的方式來劃分 官方模塊 第三方模塊 c、從模塊的可選項來劃分 必選模塊(Main和Events) 可選模塊2钱反、Nginx功能特性 模塊化設(shè)計掖看、較好擴展性 高可靠性 master–>worker 低內(nèi)存消耗 10000個keep-alive連接在Nginx僅消耗2.5MB 支持熱部署 不停機而更新配置文件、更換日志文件面哥、更新服務器程序版本 基本功能: 靜態(tài)資源的web服務器哎壳,能緩存打開的文件描述符; http, smtp, pop3協(xié)議的反向代理服務器尚卫,緩存归榕、負載均衡; 支持FastCGI (fpm)吱涉; 模塊化刹泄,非DSO機制,過濾器zip怎爵,SSI及圖像大小調(diào)整特石; 支持SSL; 非阻塞鳖链、事件驅(qū)動姆蘸、一個master生成一個或多個worker, 每個worker響應n個請求; 擴展功能: 基于名稱和IP的虛擬主機; 支持keepalive 支持平滑升級 定制訪問日志 逞敷,支持使用日志緩沖區(qū)提高日志存儲性能 支持url rewrite 支持路徑別名 支持基于IP及用戶的訪問控制 支持速率限制狂秦,支持并發(fā)數(shù)限制 Nginx的基本架構(gòu): 一個master進程,生成一個或多個worker 事件驅(qū)動: epoll, kqueue, /dev/poll (event ports) 消息通知:select, poll, rt signals 支持sendfile, sendfile64 支持AIO 支持mmap 模塊類型: 核心模塊 Standard HTTP modules Optional HTTP modules Mail modules 3rd party modules
三推捐、Nginx的啟動裂问、停止、配置文件重新裝載
1牛柒、啟動 直接使用命令啟動堪簿,示例,-c后面跟上配置文件路徑及名字焰络,如果忽略-c戴甩,則使用缺省的配置文件 # /usr/sbin/nginx -c /etc/nginx/nginx.conf 使用服務方式啟動,示例如下 # service nginx start?http://www.iis7.com/a/lm/vpsdq/ 2闪彼、啟動后的常用管理語法 nginx -s signal 其中signal可以為下列值 stop — fast shutdown quit — graceful shutdown reload — reloading the configuration file reopen — reopening the log files3甜孤、nginx的停止 stop — 快速停止,粗暴模式畏腕,不再接受新請求缴川,已經(jīng)處理的請求被強制關(guān)閉,示例如下 # /usr/sbin/nginx -s stop quit — 優(yōu)雅停止描馅,不再接受新請求把夸,等待當前的工作進程完成當前的服務器請求,并停止nginx # /usr/sbin/nginx -s quit 通過服務方式關(guān)閉nginx # service nginx stop4铭污、配置文件重新裝載 reload — 重新載入配置文件 nginx配置文件的任意變更恋日,不會被立即生效,需要使用重載命令或重啟nginx 一旦主進程接收到重新加載配置的信號嘹狞,它檢查新的配置文件的語法正確性岂膳,并嘗試應用新的配置。 否則磅网,主進程回滾所做的更改谈截,并繼續(xù)使用舊的配置文件工作。 舊的工作進程涧偷,接收命令關(guān)閉簸喂, 停止接受新的連接,并繼續(xù)服務于當前的請求燎潮,直至當前請求服務完畢后喻鳄,舊的工作進程退出 進程信號可以被發(fā)送到nginx,通過Linux/Unix的 kill工具來殺死進程确封。 在這種情況下的帶有進程ID的信號被直接發(fā)送到一個進程除呵。 缺省情況下唉锌,nginx的主進程PID被寫入到位于/usr/local/logs或者/var/run目錄的nginx.pid文件。 例如竿奏,如果主進程ID是1628,發(fā)送nginx正常關(guān)機的退出信號腥放,則執(zhí)行: kill -s QUIT 1628 通過服務方式重載配置文件 # service nginx reload