nginx 是乙個免費的,開源的,高效能的http伺服器和反向**,以及imap / pop3**伺服器。 nginx
以其高效能,穩定性,豐富的功能,簡單的配置和低資源消耗而聞名。很多高知名度的**都使用
nginx,如:netflix,github,soundcloud,maxcdn 等。
nginx 有乙個主線程( master process)和幾個工作執行緒(worker process)。主線程的目的是載入和驗證配置檔案、維護工作執行緒。
工作執行緒處理實際的請求,nginx 採用基於事件的模型和依賴作業系統的機制在工作執行緒之間高效地分發請求。工作執行緒的數量可配置,也可自動調整為伺服器cpu的數量。
nginx 及其模組的工作方式由配置檔案確定。 預設情況下,配置檔案名為nginx.conf,放在/usr/local/nginx/conf、/etc/nginx或者/usr/local/etc/nginx資料夾中。
基本命令
nginx 啟動之後,可以使用以下命令控制:
nginx -s
其中-s意思是向主程序傳送訊號,signal可以為以下四個中的乙個:
stop— 快速關閉
quit— 優雅關閉
reopen— 重新開啟日誌檔案
當執行nginx -s quit時,nginx 會等待工作程序處理完成當前請求,然後將其關閉。當你修改配置檔案後,並不會立即生效,而是等待重啟或者收到nginx -s reload訊號。
當 nginx 收到nginx -s reload訊號後,首先檢查配置檔案的語法。語法正確後,主線程會開啟新的工作執行緒並向舊的工作執行緒傳送關閉訊號,如果語法不正確,則主線程回滾變化並繼續使用舊的配置。當工作程序收到主程序的關閉訊號後,會在處理完當前請求之後退出。
配置檔案
nginx 配置的核心是定義要處理的url以及如何響應這些url請求,即定義一系列的虛擬伺服器(virtual servers)控制對來自特定網域名稱或者 ip 的請求的處理。
每乙個虛擬伺服器定義一系列的location控制處理特定的 uri 集合。每乙個location定義了對對映到自己的請求的處理場景,可以返回乙個檔案或者**此請求。
nginx 由不同的模組組成,這些模組由配置檔案中指定的指令控制。 指令分為簡單指令和塊指令。
乙個簡單指令包含指令名稱和指令引數,以空格分隔,以分號(;)結尾。 塊指令與簡單指令類似,但是由大括號()包圍。 如果塊指令大括號中包含其他指令,則稱該指令為上下文(如:events,http,server和location)。
配置檔案中的放在上下文之外的指令預設放在主配置檔案中(類似繼承主配置檔案)。events和http放置在主配置檔案中,server放置在http塊指令中,location放置在server塊指令中。
配置檔案的注釋以#開始。
靜態內容
web 伺服器乙個重要的功能是服務靜態檔案(影象或靜態html頁面)。例如,nginx 可以很方便的讓伺服器從/data/www獲取 html 檔案,從/data/images獲取來返回給客戶端,這只需要在http塊指令中的server塊指令中設定兩個location塊指令。
首先,建立/data/www目錄,並放入index.html,建立/data/images目錄並在其中放置一些。
接下來,開啟配置檔案。 建立乙個server塊:
這將設定乙個伺服器,將路由除靜態影象以外的所有請求到執行在localhost:9000的 fastcgi 伺服器。
Nginx系列 初識
nginx 是乙個開源的,高效能的http和反向 伺服器,同時也提供了imap pop3 smtp服務,將其源 以類bsd許可的形式發布,因它的穩定性 豐富的功能集 示例配置檔案和低系統資源的消耗而聞名。反向 和負載均衡 我們先來看看什麼是正向 正向 區域網中的電腦使用者想要直接訪問網路是不可行的,...
nginx(四)初識nginx日誌檔案
nginx 日誌相關指令主要有兩條,一條是log format,用來設定日誌格式,另外一條是access log,用來指定日誌檔案的存放路徑 格式和快取大小,通俗的理解就是先用log format來定義自己想用的日誌格式,然後在用zccess log定義虛擬主機時或全域性日誌時 在把定義的log f...
nginx(四)初識nginx日誌檔案
nginx 日誌相關指令主要有兩條,一條是log format,用來設定日誌格式,另外一條是access log,用來指定日誌檔案的存放路徑 格式和快取大小,通俗的理解就是先用log format來定義自己想用的日誌格式,然後在用zccess log定義虛擬主機時或全域性日誌時 在把定義的log f...