標籤:nginx 設定檔
Nginx的設定檔為一個純文字檔案,整個設定檔以塊的形式組織。main、events、http、server、location.一個http模組中可以包含多個server模組,同理一個server模組中也可以包含多個location模組。下面為Nginx的樣本設定檔。
#定義Nginx啟動並執行使用者和使用者組
user nobody;
#nginx進程數,建議設定為等於CPU總核心數
worker_processes 1;
#進程檔案
pid nginx.pid;
#全域錯誤記錄檔定義類型,[ debug | info | notice | warn | error | crit ]
error_log logs/error.log notice;
#一個nginx進程開啟的最多檔案描述符數目,理論值應該是最多開啟檔案數(系統的值ulimit -n)與nginx進程數相除,但是nginx分配請求並不均勻,所以建議與ulimit -n的值保持一致。
worker_rlimit_nofile 65535;
#工作模式與串連數上限
events {
#參考事件模型,use [ kqueue | rtsig | epoll | /dev/poll | select | poll ]; epoll模型是Linux 2.6以上版本核心中的高效能網路I/O模型,如果跑在FreeBSD上面,就用kqueue模型。
worker_connections 65535;
#單個進程最大串連數(最大串連數=串連數*進程數)
use epoll;
}
#設定http伺服器
http {
include mime.types; #副檔名與檔案類型映射表
default_type application/octet-stream; #預設檔案類型
#日誌記錄格式
log_format main ‘$remote_addr - $remote_user [$time_local]‘
‘"$request" $status $bytes_sent ‘
‘"$http_referer" "$http_user_agent" ‘
‘"$gzip_ratio"‘;
log_format download ‘$remote_addr - $remote_user [$time_local]‘
‘"$request" $status $bytes_sent ‘
‘"$http_referer" "$http_user_agent" ‘
‘"$http_range" "$sent_http_content_range"‘;
#日誌名稱,和日誌記錄格式採用main
access_log logs/access.log main;
#允許用戶端請求的最大單檔案位元組數。
client_max_body_size20M;
#該指令用於設定用戶端請求的Header頭緩衝區大小,預設值為4KB。
client_header_buffer_size 4k;
#設定用於讀取大客戶機要求標頭檔案的最大數量和大小。
large_client_header_buffers 4 8k;
client_header_timeout 10; #指定用戶端要求標頭讀取逾時時間。
client_body_timeout 10; #指定用戶端請求主體讀取逾時時間。
send_timeout 10; #指定響應用戶端的逾時時間。
#開啟高效檔案傳輸模式,sendfile指令指定nginx是否調用sendfile函數來輸出檔案,對於普通應用設為 on,如果用來進行下載等應用磁碟IO重負載應用,可設定為off,以平衡磁碟與網路I/O處理速度,降低系統的負載。
sendfile on;
tcp_nopush on; #防止網路阻塞
tcp_nodelay on; #防止網路阻塞
keepalive_timeout 60; #長連線逾時時間,單位是秒。
gzip on; #開啟gzip壓縮輸出。
gzip_min_length 1k; #最小壓縮檔大小。
gzip_http_version 1.1; #壓縮版本。
gzip_buffers 4 8k; #壓縮緩衝區。
gzip_comp_level 2; #壓縮等級。
#壓縮類型,預設就已經包含text/html,所以下面就不用再寫了,寫上去也不會有問題,但是會有一個warn。
gzip_types text/plain application/x-javascript text/css application/xml;
gzip_vary on; #如果指令gzip,gzip_static,或gunzip活躍,啟用插入“Vary: Accept-Encoding響應標題欄位。
#定義虛擬機器主機開始的關鍵字。
server {
listen 80; #指定虛擬機器的服務連接埠。
server_name www.jason1.com; #用來指定ip地址或者網域名稱。
access_log logs/host.access.log main; #設定虛擬機器主機的訪問日誌存放路徑,main指定日誌輸出格式。
server_name_in_redirect off;
location / {
index index.html; #指定訪問的預設首頁。
root /usr/local/nginx/html/jason1; #設定虛擬機器的網頁個目錄,該目錄可以為絕對路徑也可以為相對目錄。
}
error_page 404 /404.html; #指定各種錯誤返回頁面。
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/local/nginx/html;
}
location /status {
stub_status on; #設定為on,表示啟動stubstatus的工作狀態統計功能(在1.7.5之前的版本,該參數必須指定參數on。1.7.5之後版本只需指定stub_status)。
access_log /usr/local/nginx/logs/status.log; #用來指定stubstatus模組的訪問日誌。
auth_basic "NginxStatus"; #開啟使用“HTTP基本認證”協議的使用者名稱密碼驗證。 指定的參數被用作 域。 參數off可以取消繼承自上一個配置等級 auth_basic 指令的影響。
auth_basic_user_file /usr/local/nginx/conf/htpasswd;}#指定認證的密碼檔案。
location ~ /\.ht {
deny all;
}
}
}
本文出自 “技術成就夢想!” 部落格,請務必保留此出處http://dreamsanqin.blog.51cto.com/845412/1714694
Nginx設定檔參數詳解