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下的命令,如果這個命令不在這個目錄下,當然會找不到命...