基礎知識
nginx由於使用了 epoll模型,要求linux的核心必須在2.6以上。要了解epoll模型,可以看看知乎上的這篇文章:io多路復用與 select,poll與epoll的關係
。使用 uname -a 檢視linux 核心版本,如下是centos 6.5的顯示:
編譯與安裝
nginx依賴以下模組:
以gzip 模組為例,檢視以下模組是否安裝:
如果沒有安裝,那麼就 yum -y install zlib zlib-devel。
make是用來編譯的,它從makefile中讀取指令,然後編譯。make install是用來安裝的,它也從makefile中讀取指令,安裝到指定的位置。
最簡單的編譯安裝 nginx
tar zxvf nginx-1.10.2.tar.gz
解壓以後進入到
./configure 是用來檢查本機的的安裝環境。在configure階段結束以後,將會出現如下資訊:
可以看到預設的安裝目錄以及一些基本的配置。
啟動
nginx預設採用80埠,在直接啟動nginx之前,先檢查80埠是否被占用,使用fuser -n tcp 80或者netstat -pan | grep :80檢視80埠是否被占用。這裡假設沒有被占用,然後進入 /usr/local/nginx(上文提到的預設安裝目錄)目錄:
nginx配置
在/usr/local/nginx/conf(預設配置)中,有乙個nginx.conf檔案。nginx.conf的**是這樣的:
注意到最頂上的日誌配置嗎?在頂部設定的配置全域性生效。但是子模組可以覆蓋它。頂部日誌配置:
假設開發人員改變了nginx.conf配置,測試nginx.conf是否合法:
nginx配置檔案架構的圖
這裡有詳細的配置:
在編譯階段需要附帶編譯上ssl模組:./configure --with-http_ssl_module
限流
注意在http中配置以後需要在server中引入。
burst一秒中可以訪問的資料量。burst相當於乙個授權令牌,每秒中每次查詢,當前burst-1,查詢結束,burst+1;
如果burst為0時,訪問不了。
可以看到,基本上是1秒返回一次了。
例項配置
關於nginx的配置理解
主要配置檔案etc nginx nginx.conf include語句表示要包含的配置檔案,相當於js用import匯入檔案的作用 語句分號結尾,key和value使用空格分開 後面放正則 大括號表示指令塊 後面表示注釋 詳細說明 user nginx 設定執行nginx的使用者 worker p...
關於nginx配置
通常,配置檔案可以包括伺服器監聽的埠和伺服器名稱區分的幾個server塊。當nginx決定哪個伺服器處理請求後,它會根據伺服器塊內部定義的location指令的引數測試請求頭中指定的uri。將以下location塊新增到伺服器 server 塊 該location塊指定與請求中的uri相比較的 字首...
深入理解nginx
1.檢視核心版本 因為2.6以上的核心才支援epoll,nginx的高併發的特性依賴epoll uname a linux com.guang 3.10.0 514.16.1.el7.x86 64 1 smp wed apr 12 15 04 24 utc 2017 x86 64 x86 64 x8...