一篇文章掌握Nginx核心文件結構

文章主要分析Nginx核心配置文件 ./conf/nginx.conf

1 Nginx核心配置結構

2 配置模組詳解

  1. 設置worker進程的用戶,指的linux中的用戶,會涉及到nginx操作目錄或文件的一些許可權,默認為nobody
user root;
  1. worker進程工作數設置,一般來說CPU有幾個,就設置幾個,或者設置為N-1也行
worker_processes 1;
  1. nginx 日誌級別debug | info | notice | warn | error | crit | alert | emerg,錯誤級別從左到右越來越大

  2. 設置nginx進程 pid

pid        logs/nginx.pid;
  1. 設置工作模式
events {
    # 默認使用epoll
    use epoll;
    # 每個worker允許連接的客戶端最大連接數
    worker_connections  10240;
}
  1. http 是指令塊,針對http網路傳輸的一些指令配置
http {
}
  1. include 引入外部配置,提高可讀性,避免單個配置文件過大
include       mime.types;
  1. 設定日誌格式,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
  1. sendfile使用高效文件傳輸,提升傳輸性能。啟用後才能使用tcp_nopush,是指當數據表累積一定大小後才發送,提高了效率。3
sendfile        on;
tcp_nopush      on;
  1. keepalive_timeout設置客戶端與服務端請求的超時時間,保證客戶端多次請求的時候不會重複建立新的連接,節約資源損耗
#keepalive_timeout  0;
keepalive_timeout  65;
  1. 啟用壓縮,html/js/css壓縮後傳輸會更快
gzip on;
  1. server可以在http指令塊中設置多個虛擬主機
  • listen 監聽埠
  • server_name localhost、ip、域名
  • location 請求路由映射,匹配攔截
  • root 請求位置
  • index 首頁設置
server {
	listen       88;
	server_name  localhost;
	location / {
		root   html;
		index  index.html index.htm;
	}
}
Tags: