一.nginx配置文件結構圖
二.分塊釋義
1.全局配置
user [用戶名] [組名];
示例: user nginx1 nginx;
worker_processes [工作進程數];
示例: worker_processes 4; ---通常為cpu數量的1倍或2倍,可以設置成auto自動檢測
error_log [存放路徑] [存放類型]
示例: error_log logs/error.log info;
pid [存放路徑];
示例: pid logs/nginx.pid;
include [文件路徑];
示例: include conf/nginx2.conf;
2.events配置
use [I/O模型];
示例: use epoll; ---模型包括epoll(linux常用),select,poll,kqueue(windows常用)等
worker_connections [最大連接數];
示例: work_connections 1024; ---表示每個work_process允許的最大連接數,默認512
3.http全局配置
include [文件名];
default_type [媒體類型];
示例: include mime.types; ---前端請求的資源類型
default_type application/octet-stream;
server_tokens [on | off];
示例: server_tokens off; ---顯示或隱藏nginx版本,建議隱藏
access_log [服務日志路徑文件名] [格式,可選項]
示例: access_log main;
sendfile [on | off];
示例: sendfile on; ---是否使用sendfile方式傳輸文件,普通應用設置 on ,IO重負載應用設置 off
keepalive_timeout [超時時間];
示例: keepalive_timeout 120; ---server端連接的保持時間,默認75秒
upstream [名稱] {
server [ip地址]:[端口號];
server [ip地址]:[端口號];
}
示例: upstream myServer {
ip_hash; ---負載均衡策略:1.輪詢(默認) 2.ip_hash(同一個客戶端保持發送同一個服務器) 3.least_conn(請求轉發給連接數較少的服務器)
server 192.168.0.1:8081 weight=2; ---當前權重設置為2,默認為1
server 192.168.0.2:8081 backup; ---設置的狀態:1.down(當前的server不參與負載均衡) 2.max_fails(默認為1,表示最大失敗次數) 3.fail_timeout (在這個時間內max_faills次都失敗了,則被認為停機)4.backup(表示備用服務器)
} ---要在server中增加proxy_pass http://myServer/;
4.server全局配置
listen [ip:port | ip | port];
示例: listen 8080; ---配置監聽的ip地址,端口號
keepalive_requests [數量];
示例: keepalive_requests 100; ---單連接請求上限次數
server_name [域名,可用正則表達式]
示例: server_name www.cnblog.com ---設置訪問域名
5.location配置
location [ = | ~ | ~* | ^~ ] uri {......}; ---1.'=' 標准匹配 2.‘~’ 正則匹配,區分大小寫 3.‘~*’ 正則匹配,不區分大小寫 4.‘^~’ 找匹配度最高的uri
示例: location ~/testweb{...};
proxy_pass [地址];
示例: proxy_pass http://myServer/; ---設置被代理服務器的地址
rewrite [正則表達式] [地址] [flag];
示例:rewrite ^ http://www.abc.com break; ---重定向到http://www.abc.com,rewrite可以用於server{...},location{...},if{...}中;flag:last(匹配完繼續匹配),break(匹配完終止匹配),redirect(臨時重定向),permanent(永久重定向)
root [路徑];
示例: root /data/images; ---接收請求后查找的資源路徑
proxy_set_header [變量名] [變量值];
示例: proxy_set_header host $host;
proxy_set_header X-Real_IP $remote_addr;
proxy_set_header X-Forwarded-For &proxy_add_x_forwarded_for; ---用來設定被代理服務器接收到的header信息
【nginx配置文件是nginx里面很重要的一環,就將它單獨拿出來分析,參考了網上的解析,綜合起來供自己和大家觀看。】