Nginx 介紹及日常管理的詳解

03ngnntds發表於2019-03-05

這篇文章主要介紹了Nginx 介紹及日常管理的詳解的相關資料,希望透過本文能幫助到大家,需要的朋友可以參考下
Nginx 介紹及日常管理的詳解

Nginx(發音同 engine x)是一款輕量級的Web 伺服器/反向代理伺服器及電子郵件(IMAP/POP3)代理伺服器,並在一個BSD-like 協議下發行。其特點是佔有記憶體少,併發能力強,事實上nginx的併發能力確實在同型別的網頁伺服器中表現較好.中國大陸使用nginx網站使用者有:新浪、網易、 騰訊等。本文簡要描述了Nginx的基本特性及其配置檔案的簡單描述。

一、Nginx的工作程式

1、一個主程式: 主程式的主要目的是讀取和評估配置,啟動、終止及維護工作程式以及建立、繫結及關閉套接字。 2、多個工作程式: 工作程式處理web請求。nginx的採用了基於事件的模型和作業系統相關的機制,有效地分配工作程式之間的請求。 負責解析http協議;提供反向代理及過濾功能;nginx任何能完成的其它任務; 工作程式的數量被定義在配置檔案中,可以使用配置檔案定義固定的數量,或根據可用的CPU核心數實現自動調整其數量。3、快取載入器(cache loader): 檢查快取儲存中的快取物件; 使用快取後設資料建立記憶體資料庫; 接收、傳入並處理來自客戶端的連線;4、快取管理器(cache manager): 快取的失效及過期檢驗;5、基於配置檔案定義Nginx的工作方式 nginx的工作方式及其模組的工作是在配置檔案中確定的。 預設情況下,其配置檔案為nginx.conf,通常位於/usr/local/nginx/conf, /etc/nginx, 或者/usr/local/etc/nginx目錄下。
二、Nginx特性

1、Nginx的模組化特性 Nginx伺服器與Apache httpd類似,採用了基於模組化的構建方式。 在安裝部署Nginx伺服器時,一定要遵循:最小化模組安裝,以節省無用模組對Nginx的效能影響及佔用系統資源。 a、從功能上劃分 Nginx核心模組:包括Nginx的核心模組和事件驅動模組 http伺服器模組:這類模組包括三類模組,即HTTP的核心模組和標準模組以及可選的HTTP模組 b、從釋出模組的方式來劃分 官方模組 第三方模組 c、從模組的可選項來劃分 必選模組(Main和Events) 可選模組2、Nginx功能特性 模組化設計、較好擴充套件性 高可靠性 master–>worker 低記憶體消耗 10000個keep-alive連線在Nginx僅消耗2.5MB 支援熱部署 不停機而更新配置檔案、更換日誌檔案、更新伺服器程式版本 基本功能: 靜態資源的web伺服器,能快取開啟的檔案描述符; http, smtp, pop3協議的反向代理伺服器,快取、負載均衡; 支援FastCGI (fpm); 模組化,非DSO機制,過濾器zip,SSI及影像大小調整; 支援SSL; 非阻塞、事件驅動、一個master生成一個或多個worker, 每個worker響應n個請求; 擴充套件功能: 基於名稱和IP的虛擬主機; 支援keepalive 支援平滑升級 定製訪問日誌 ,支援使用日誌緩衝區提高日誌儲存效能 支援url rewrite 支援路徑別名 支援基於IP及使用者的訪問控制 支援速率限制,支援併發數限制 Nginx的基本架構: 一個master程式,生成一個或多個worker 事件驅動: 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 start2、啟動後的常用管理語法 nginx -s signal 其中signal可以為下列值 stop — fast shutdown quit — graceful shutdown reload — reloading the configuration file reopen — reopening the log files3、nginx的停止 stop — 快速停止,粗暴模式,不再接受新請求,已經處理的請求被強制關閉,示例如下 # /usr/sbin/nginx -s stop quit — 優雅停止,不再接受新請求,等待當前的工作程式完成當前的伺服器請求,並停止nginx # /usr/sbin/nginx -s quit 透過服務方式關閉nginx # service nginx stop4、配置檔案重新裝載 reload — 重新載入配置檔案 nginx配置檔案的任意變更,不會被立即生效,需要使用過載命令或重啟nginx 一旦主程式接收到重新載入配置的訊號,它檢查新的配置檔案的語法正確性,並嘗試應用新的配置。 否則,主程式回滾所做的更改,並繼續使用舊的配置檔案工作。 舊的工作程式,接收命令關閉, 停止接受新的連線,並繼續服務於當前的請求,直至當前請求服務完畢後,舊的工作程式退出 程式訊號可以被髮送到nginx,透過Linux/Unix的 kill工具來殺死程式。 在這種情況下的帶有程式ID的訊號被直接傳送到一個程式。 預設情況下,nginx的主程式PID被寫入到位於/usr/local/logs或者/var/run目錄的nginx.pid檔案。 例如,如果主程式ID是1628,傳送nginx正常關機的退出訊號,則執行: kill -s QUIT 1628 透過服務方式過載配置檔案 # service nginx reload 


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69911024/viewspace-2637609/,如需轉載,請註明出處,否則將追究法律責任。

相關文章