輕量級HTTP伺服器NginX的配置與除錯

2021-06-20 10:59:28 字數 3560 閱讀 8451

nginx安裝完畢後,會產生相應的安裝目錄,根據前面的安裝路徑,nginx的配置檔案路徑為/opt/nginx/conf,其中nginx.conf為nginx的主配置檔案。這裡重點介紹下nginx.conf這個配置檔案。

nginx配置檔案主要分成四部分:main(全域性設定)、server(主機設定)、upstream(負載均衡伺服器設定)和 location(url匹配特定位置的設定)。main部分設定的指令將影響其他所有設定;server部分的指令主要用於指定主機和埠;upstream指令主要用於負載均衡,設定一系列的後端伺服器;location部分用於匹配網頁位置。這四者之間的關係式:server繼承main,location繼承server,upstream既不會繼承其他設定也不會被繼承。

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

下面通過乙個nginx配置例項,詳細介紹下nginx.conf每個指令的含義。為了能更清楚地了解nginx的結構和每個配置選項的含義,這裡按照功能點將nginx配置檔案分為7個部分逐次講解,下面就圍繞這7個部分進行介紹。

1.nginx的全域性配置

下面這段內容是對nginx的全域性屬性配置,**如下:

user  nobody nobody;

worker_processes  4;

error_log  logs/error.log  notice;

pid        logs/nginx.pid;

worker_rlimit_nofile 65535;

events

對上面這段**中每個配置選項的含**釋如下:

user是個主模組指令,指定nginx worker程序執行使用者以及使用者組,預設由nobody賬號執行。

worker_processes是個主模組指令,指定了nginx要開啟的程序數。每個nginx程序平均耗費10m~12m記憶體。根據經驗,一般指定乙個程序足夠了,如果是多核cpu,建議指定和cpu的數量一樣的程序數即可。

error_log是個主模組指令,用來定義全域性錯誤日誌檔案。日誌輸出級別有debug、info、notice、warn、error、crit可供選擇,其中,debug輸出日誌最為最詳細,而crit輸出日誌最少。

pid是個主模組指令,用來指定程序id的儲存檔案位置。

worker_rlimit_nofile用於指定乙個nginx程序可以開啟的最多檔案描述符數目,這裡是65535,需要使用命令「ulimit -n 65535」來設定。

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

events

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的設定才能生效。

5.server虛擬主機配置

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

server

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

location ~ ^/(upload|html)/ 

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

location ~ .*.jsp$

7.stubstatus模組配置

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

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

location /nginxstatus

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

/usr/local/apache/bin/htpasswd -c  /opt/nginx/conf/htpasswd webadmin

會得到以下提示資訊:

new password:

輸入密碼之後,系統會要求再次輸入密碼。確認之後新增使用者成功。

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

active connections: 1

server accepts handled requests

393411 393411 393799

reading: 0 writing: 1 waiting: 0

active connections表示當前活躍的連線數,第三行的三個數字表示 nginx當前總共處理了393411個連線, 成功建立393411次握手, 總共處理了393799個請求。最後一行的reading表示nginx讀取到客戶端header資訊數, writing表示nginx返回給客戶端的header資訊數,「waiting」表示nginx已經處理完,正在等候下一次請求指令時的駐留連線數。

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

error_page  404              /404.html;

error_page   500 502 503 504  /50x.html;

location = /50x.html }}

本文出自 「技術成就夢想」 部落格,請務必保留此出處

輕量級HTTP伺服器Nginx(安裝篇)

root localhost home tar zxvf pcre 8.02.tar.gz root localhost home cd pcre 8.02 root localhost pcre 8.02 configure root localhost pcre 8.02 make root l...

輕量級HTTP伺服器Nginx(入門篇)

一 什麼是nginx 相信很多讀者都對apache非常熟悉,與apache類似,nginx是一款高效能的http和反向 伺服器軟體,也是乙個 imap pop3 smtp 伺服器。nginx 發音是 engine x 由俄羅斯的程式設計師igor sysoev所開發 igor將源 以類bsd許可證的...

阿里雲輕量級伺服器

解決linux mysql命令 bash mysql command not found 的方法 root db 02 mysql u root bash mysql command not found 原因 這是由於系統缺省會查詢 usr bin下的命令,如果這個命令不在這個目錄下,當然會找不到命...