Nginx配置文件

1.配置文件結構

從整體結構上看,Nginx的配置文件主要由main、events、http、server、location五個模塊組成。其中,server塊嵌套在http塊內,location塊嵌套在server塊內,對于嵌套塊中的指令,其執(zhí)行順序為從外至內。

main
events {...}
http {
    server {
        location {...}
    }
}
模塊 說明
main 用來配置Nginx工作進程所屬的用戶和用戶組、工作進程數(shù)量、錯誤日志位置與級別、pid位置、工作進程的優(yōu)先級等
events 用來配置Nginx的工作模式和并發(fā)量
http 用來配置Nginx處理http請求
server 用來配置Nginx中的虛擬主機
location 用來做模式匹配,可以根據(jù)用戶請求的URI來執(zhí)行不同的操作

1.1 main模塊

指令詳解:
# 工作進程所屬用戶
user  www-data;
# 工作進程數(shù)量,一般為CPU核數(shù)或者CPU核數(shù)的2倍
worker_processes  4;
# 主進程pid的存儲位置
pid  /run/nginx.pid;

1.2 events模塊

指令詳解:
events {
    # 設置事件模型,epoll是多路復用中的一種方式,僅用于Linux2.6以上的內核
    use  epoll;
    # 單個工作進程的最大并發(fā)連接數(shù),與服務器內存大小有關。
    worker_connections  1024;
    # 該配置項使得工作進程在獲得新連接通知時,立即接受所有連接,放入監(jiān)聽隊列
    multi_accept on;
}

1.3 http模塊

http模塊可以包含多個server模塊,server模塊又可以包含多個location模塊!除了server模塊和location模塊外,還包含http全局塊,用來配置Nginx日志、超時控制、反向代理等。

http全局塊指令詳解:
http {
    # mime.types文件是MIME文件類型和文件擴展名的映射。在Nginx返回的響應報文中,
    # 通過Content-type字段告知瀏覽器返回的文件類型,而瀏覽器就可以調用相應的應用
    # 程序為用戶展示數(shù)據(jù)。
    include  mime.types;
    # Nginx默認返回的文件類型
    default_type  application/octet-stream;
    # 開啟高效的文件傳輸模式(暫時還不理解這個配置)
    sendfile on;
    
    #+++++++++#
    #+日志配置+#
    #+++++++++#
    # 設定日志格式
    log_format  main
    '[$time_local] $remote_addr - $remote_user '
    '"$request" $request_length $request_time $status $body_bytes_sent '
    '"$http_referer" "$http_user_agent"';
    # 設置Nginx訪問日志
    access_log  /data/nginx/logs/nginx_access.log  main;
    # 設置Nginx錯誤日志
    error_log  /data/nginx/logs/nginx_error.log;

    #+++++++++#
    #+超時控制+#
    #+++++++++#
    # 設置長連接的保持時間,相當于?;疃〞r器,Nginx默認為75s,一般可設為60s,
    # 若設為0,則禁止長連接。
    keepalived_timeout  60;
    # 客戶端與服務端建立連接后,客戶端發(fā)送完整的請求頭的超時時間,會受請求頭長度和
    # 網(wǎng)絡狀況的影響。Nginx默認為60s,若指定時間內,客戶端未發(fā)送完請求頭,則Nginx
    # 返回408錯誤,即Request Time Out 。
    client_header_timeout  10;
    # 客戶端與服務端建立連接后,客戶端發(fā)送請求體的超時時間,會受請求體長度和網(wǎng)絡狀況
    # 的影響,在文件上傳服務中,可能需要將此參數(shù)的值調大。Nginx默認為60s,若指定時間
    # 內,客戶端未發(fā)送完請求體,則Nginx返回408錯誤。
    client_body_timeout  20;

    #+++++++++++++++++++++#
    #+請求頭、請求體大小限制+#
    #+++++++++++++++++++++#
    # client_header_buffer_size指令用來分配一個buffer來容納客戶端的請求行和請求頭,默認
    # 為1k;large_client_header_buffers 指令用來規(guī)定容納客戶端請求行和請求頭的最大buffer
    # 數(shù)量和大小,默認最大數(shù)量為4個,大小為4k。
    # Nginx首先根據(jù)client_header_buffer_size配置的值來分配buffer,如果buffer過小,那么再
    # 次根據(jù)large_client_header_buffers 配置的值來分配large_buffer,如果large_buffer還是過
    # 小,則返回414錯誤(Request-URI Too Large)或者400錯誤(Bad Request)。
    client_header_buffer_size  1k;
    large_client_header_buffers  4 4k;
    # client_body_buffer_size指令用來配置請求體緩沖區(qū)的大小,默認為32k;
    # client_max_body_size指令用來配置請求體緩沖區(qū)的最大值,默認為1m;對于文件上傳服
    # 務器來說,client_max_body_size的配置十分重要。
    client_body_buffer_size 32k;
    client_max_body_size 1m;

    #+++++++++#
    #+Gzip壓縮+#
    #+++++++++#
    # Gzip是頁面壓縮技術,其作用是對服務端返回的頁面進行壓縮,以減小頁面的體積,提高
    # 瀏覽器對頁面的加載速率。一般情況下,對于js、css、jpg、jepg、png、gif這樣的靜
    # 態(tài)文件需要開啟Gzip壓縮技術。
    # 開啟gzip壓縮
    gzip on;
    # 設置允許壓縮的頁面的最小字節(jié)數(shù),默認為1k;頁面大小可以從響應頭的Content-Length
    # 中獲取。
    gzip_min_length  1k;
    # 配置壓縮頁面的緩沖區(qū)數(shù)量以及單個緩沖區(qū)的大小,默認為內存的一個頁的大小。
    gzip_buffers 4 4k;
    # 允許Gzip壓縮的文件類型
    gzip_types text/plain application/javascript text/css image/jpeg image/png image/gif;
    # 壓縮級別,取值范圍[1-9],默認為1,一般設為4或4;其值越大,壓縮率越大,但是
    # 消耗的CPU時間越長。
    gzip_comp_level  4;
    # 指定允許的HTTP版本號,默認為1.1
     gzip_http_version 1.1;
}

日志格式參數(shù)說明:

參數(shù) 說明 示例
$time_local 本地時間和時區(qū) 18/Jul/2012:17:00:01 +0800
$remote_addr 客戶端IP地址 211.71.72.69
$remote_user 客戶端名稱 -
$request 請求方式、請求的URI、HTTP協(xié)議版本 "GET /article-10000.html HTTP/1.1"
$request_length 請求的長度,包括行、頭、體
$request_time 請求處理時間,單位s,指從讀取客戶端第一個字節(jié)開始,直到將最后一個字節(jié)內容返回給客戶端
$status 服務端返回的狀態(tài)碼 200
$body_bytes_sent 服務端返回的內容大小,不包括響應行、響應頭,單位字節(jié) 1547
$http_referer URL跳轉來源 https://www.baidu.com/
$http_user_agent 客戶端瀏覽器信息 "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; Trident/4.0; SV1; GTB7.0; .NET4.0C;"
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

友情鏈接更多精彩內容