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的全域性配置
**如下:
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伺服器配置
http
upstream是nginx的http upstream模組,這個模組通過乙個簡單的排程演算法來實現客戶端ip到後端伺服器的負載均衡。
在上面的設定中,通過upstream指令指定了乙個負載均衡器的名稱cszhi.com。這個名稱可以任意指定,在後面需要的地方直接呼叫即可。
nginx的負載均衡模組目前支援4種排程演算法,下面進行分別介紹,其中後兩項屬於第三方的排程方法。
注意,當負載排程演算法為ip_hash時,後端伺服器在負載均衡排程中的狀態不能是weight和backup。
2.5 server虛擬主機配置
下面介紹對虛擬主機的配置。
建議將對虛擬主機進行配置的內容寫進另外乙個檔案,然後通過include指令包含進來,這樣更便於維護和管理。
server
以下這段設定是將upload和html下的所有檔案都交給nginx來處理,當然,upload和html目錄包含在/web/wwwroot/www.cszhi.com目錄中。
location ~ ^/(upload|html)/
在最後這段設定中,location是對此虛擬主機下動態網頁的過濾處理,也就是將所有以.jsp為字尾的檔案都交給本機的8080埠處理。
location ~ .*.php$
2.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命令來生成密碼檔案,例如要新增乙個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預設的錯誤頁面。
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html
}
}
Nginx的配置檔案詳解(超詳細)
1 安裝nginx 在安裝nginx之前,需確保系統已經安裝了gcc openssl devel pcre devel和zlib devel軟體庫。下面是nginx安裝過程 2 nginx的配置檔案結構nginx的配置檔案nginx.conf位於其安裝目錄的conf目錄下。nginx.conf由多個...
nginx詳細配置檔案
快取時間設定 js和css快取時間設定 location js css 日誌格式設定 定義本虛擬主機的訪問日誌 access log var log nginx ha97access.log access 對 啟用反向 location 設定檢視nginx狀態的位址 location nginxst...
nginx配置檔案詳解
nginx engine x 是乙個高效能的 http 和 反向 伺服器,也是乙個 imap pop3 smtp 伺服器。nginx 是由 igor sysoev 為俄羅斯訪問量第二的 rambler.ru 站點開發的,它已經在該站點執行超過兩年半了。igor 將源 以類bsd許可證的形式發布。ng...