一篇文章掌握Nginx核心文件結構
文章主要分析Nginx核心配置文件 ./conf/nginx.conf
1 Nginx核心配置結構
2 配置模組詳解
- 設置worker進程的用戶,指的linux中的用戶,會涉及到nginx操作目錄或文件的一些許可權,默認為nobody
user root;
- worker進程工作數設置,一般來說CPU有幾個,就設置幾個,或者設置為N-1也行
worker_processes 1;
-
nginx 日誌級別debug | info | notice | warn | error | crit | alert | emerg,錯誤級別從左到右越來越大
-
設置nginx進程 pid
pid logs/nginx.pid;
- 設置工作模式
events {
# 默認使用epoll
use epoll;
# 每個worker允許連接的客戶端最大連接數
worker_connections 10240;
}
- http 是指令塊,針對http網路傳輸的一些指令配置
http {
}
- include 引入外部配置,提高可讀性,避免單個配置文件過大
include mime.types;
- 設定日誌格式,main為定義的格式名稱,如此 access_log 就可以直接使用這個變數了
參數名 參數意義
$remote_addr 客戶端ip
$remote_user 遠程客戶端用戶名,一般為:』-』
$time_local 時間和時區
$request 請求的url以及method
$status 響應狀態碼
$body_bytes_send 響應客戶端內容位元組數
$http_referer 記錄用戶從哪個鏈接跳轉過來的
$http_user_agent 用戶所使用的代理,一般來時都是瀏覽器
$http_x_forwarded_for 通過代理伺服器來記錄客戶端的ip
- sendfile使用高效文件傳輸,提升傳輸性能。啟用後才能使用tcp_nopush,是指當數據表累積一定大小後才發送,提高了效率。3
sendfile on;
tcp_nopush on;
- keepalive_timeout設置客戶端與服務端請求的超時時間,保證客戶端多次請求的時候不會重複建立新的連接,節約資源損耗
#keepalive_timeout 0;
keepalive_timeout 65;
- 啟用壓縮,html/js/css壓縮後傳輸會更快
gzip on;
- server可以在http指令塊中設置多個虛擬主機
- listen 監聽埠
- server_name localhost、ip、域名
- location 請求路由映射,匹配攔截
- root 請求位置
- index 首頁設置
server {
listen 88;
server_name localhost;
location / {
root html;
index index.html index.htm;
}
}