Nginx 配置檔案詳解

2021-07-24 17:02:47 字數 3913 閱讀 8378

1、安裝nginx

在安裝nginx之前,需確保系統已經安裝了gcc、 openssl-devel、 pcre-devel和zlib-devel軟體庫。

下面是nginx安裝過程:

2、nginx的配置檔案結構

nginx的配置檔案nginx.conf位於其安裝目錄的conf目錄下。

nginx.conf由多個塊組成,最外面的塊是main,main包含events和http,http包含upstream和多個server,server又包含多個location:

main(全域性設定)、server(主機設定)、upstream(負載均衡伺服器設定)和 location(url匹配特定位置的設定)。

這四者之間的關係式:server繼承main,location繼承server,upstream既不會繼承其他設定也不會被繼承。

在這四個部分當中,每個部分都包含若干指令,這些指令主要包含nginx的主模組指令、事件模組指令、http核心模組指令,同時每個部分還可以使用其他http模組指令,例如http ssl模組、httpgzip static模組和http addition模組等。

2.1 nginx的全域性配置

**如下:

123

4567

8910

user  nobody nobody;

worker_processes 2;

error_log logs/error.log notice;

pid logs/nginx.pid;

worker_rlimit_nofile 65535;

events

每個配置選項的含**釋如下:

events事件指令是設定nginx的工作模式及連線數上限:

use是個事件模組指令,用來指定nginx的工作模式。nginx支援的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll。其中select和poll都是標準的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在linux平台上,而kqueue用在bsd系統中。對於linux系統,epoll工作模式是首選。

worker_connections也是個事件模組指令,用於定義nginx每個程序的最大連線數,預設是1024。最大客戶端連線數由worker_processes和worker_connections決定,即max_client=worker_processes*worker_connections。

在作為反向**時,max_clients變為:max_clients = worker_processes * worker_connections/4。

程序的最大連線數受linux系統程序的最大開啟檔案數限制,在執行作業系統命令「ulimit -n 65536」後worker_connections的設定才能生效

2.2 http伺服器配置

123

4567

891011

1213

1415

1617

1819

2021

22

http
upstream是nginx的http upstream模組,這個模組通過乙個簡單的排程演算法來實現客戶端ip到後端伺服器的負載均衡。

在上面的設定中,通過upstream指令指定了乙個負載均衡器的名稱cszhi.com。這個名稱可以任意指定,在後面需要的地方直接呼叫即可。

nginx的負載均衡模組目前支援4種排程演算法,下面進行分別介紹,其中後兩項屬於第三方的排程方法。

在http upstream模組中,可以通過server指令指定後端伺服器的ip位址和埠,同時還可以設定每個後端伺服器在負載均衡排程中的狀態。常用的狀態有:

注意,當負載排程演算法為ip_hash時,後端伺服器在負載均衡排程中的狀態不能是weight和backup。

2.5 server虛擬主機配置

下面介紹對虛擬主機的配置。

建議將對虛擬主機進行配置的內容寫進另外乙個檔案,然後通過include指令包含進來,這樣更便於維護和管理。

123

4567

server
以下這段設定是將upload和html下的所有檔案都交給nginx來處理,當然,upload和html目錄包含在/web/wwwroot/www.cszhi.com目錄中。

123

4

location ~ ^/(upload|html)/
在最後這段設定中,location是對此虛擬主機下動態網頁的過濾處理,也就是將所有以.jsp為字尾的檔案都交給本機的8080埠處理。

123

4

location ~ .*.php$
2.7 stubstatus模組配置

stubstatus模組能夠獲取nginx自上次啟動以來的工作狀態,此模組非核心模組,需要在nginx編譯安裝時手工指定才能使用此功能。

以下指令實指定啟用獲取nginx工作狀態的功能。

123456

location /nginxstatus
stub_status設定為「on」表示啟用stubstatus的工作狀態統計功能。access_log 用來指定stubstatus模組的訪問日誌檔案。auth_basic是nginx的一種認證機制。auth_basic_user_file用來指定認證的密碼檔案,由於nginx的auth_basic認證採用的是與apache相容的密碼檔案,因此需要用apache的htpasswd命令來生成密碼檔案,例如要新增乙個test使用者,可以使用下面方式生成密碼檔案:

/usr/local/apache/bin/htpasswd -c  /opt/nginx/conf/htpasswd test
然後輸入兩次密碼後確認之後新增使用者成功。

要檢視nginx的執行狀態,可以輸入http://ip/nginxstatus,輸入建立的使用者名稱和密碼就可以看到nginx的執行狀態:

active connections: 1

server accepts handled requests

34561 35731 354399

reading: 0 writing: 3 waiting: 0

active connections表示當前活躍的連線數,第三行的三個數字表示 nginx當前總共處理了34561個連線, 成功建立次握手, 總共處理了354399個請求。最後一行的reading表示nginx讀取到客戶端header資訊數, writing表示nginx返回給客戶端的header資訊數

,「waiting」表示nginx已經處理完,正在等候下一次請求指令時的駐留連線數。

在最後這段設定中,設定了虛擬主機的錯誤資訊返回頁面,通過error_page指令可以定製各種錯誤資訊的返回頁面。在預設情況下,nginx會在主目錄的html目錄中查詢指定的返回頁面,特別需要注意的是,這些錯誤資訊的返回頁面大小一定要超過512k,否者會被ie瀏覽器替換為ie預設的錯誤頁面。

123

4567

error_page  404              /404.html;

error_page 500 502 503 504 /50x.html;

location = /50x.html

}}

**:

nginx配置檔案詳解

nginx engine x 是乙個高效能的 http 和 反向 伺服器,也是乙個 imap pop3 smtp 伺服器。nginx 是由 igor sysoev 為俄羅斯訪問量第二的 rambler.ru 站點開發的,它已經在該站點執行超過兩年半了。igor 將源 以類bsd許可證的形式發布。ng...

nginx配置檔案詳解

定義nginx執行的使用者和使用者組 user www www nginx程序數,建議設定為等於cpu總核心數。worker processes 8 全域性錯誤日誌定義型別,debug info notice warn error crit error log ar loginx error.log...

Nginx配置檔案詳解

定義nginx執行的使用者各使用者組 user nginx nginx nginx程序數,建議設定與cpu核心數一致 worker processes 1 全域性錯誤日誌定義型別 debug info notice warn error crit error log logs error.log e...