nginx學習 3 Nginx 核心配置詳解

2021-10-13 15:27:18 字數 3405 閱讀 1925

說明:main: 配置影響nginx全域性的指令。一般有執行nginx伺服器的使用者組,nginx程序pid存放路徑,日誌存放路徑,配置檔案引入,允許生成worker process數等。

event: 配置影響nginx伺服器或與使用者的網路連線。有每個程序的最大連線數,選取哪種事件驅動模型處理連線請求,是否允許同時接受多個網路連線,開啟多個網路連線序列化等。

http: 可以巢狀多個server,配置**,快取,日誌定義等絕大多數功能和第三方模組的配置。如檔案引入,mime-type定義,日誌自定義,是否使用sendfile傳輸檔案,連線超時時間,單連線請求數等。

3.1 server:配置虛擬主機的相關引數,乙個http中可以有多個server。

3.2 upstream:上有伺服器設定,主要為方向**,負載均衡相關配置

3.3 location: 配置請求的路由,以及各種頁面的處理情況。

# 啟動nginx工作程序的使用者和組,預設為nobody

user nginx nginx;

# 啟動nginx工作程序的數量,預設為1

worker_processes auto;

# 將nginx⼯作程序繫結到指定的cpu核⼼,預設nginx是不進⾏程序繫結的,

# 繫結並不是意味著當前nginx程序獨佔⼀核⼼cpu,但是可以保證此程序不會運⾏在其他核⼼上,這就極⼤減少了nginx的⼯作程序在不同的cpu核⼼上的來回跳轉,減少了cpu對程序的資源分配與**以及記憶體管理等,

# 因此可以有效的提公升nginx伺服器的效能,也可以設定為auto。

worker_cpu_affinity 0001 0010 0100 1000;

# 可以執行以下命令觀察工作程序是否一致執行在同一核cpu上

# [root@centos7-01 ~]#watch -n1 'ps axo pid,cmd,psr,user | grep nginx|grep -v grep'

#錯誤⽇志記錄配置,語法:error_log file [debug | info | notice | warn | error | crit | alert | emerg]

#error_log logs/error.log;

#error_log logs/error.log notice;

error_log logs/error.log error;

# pid檔案儲存路徑(很有用)

pid /run/nginx.pid;

# 工作程序nice值,-20~19

worker_priority 0;

#這個數字包括nginx的所有連線(例如與**伺服器的連線等),⽽不僅僅是客戶端的連線,另⼀個考慮因素是實際的併發連線數不能超過系統級別的最⼤開啟⽂件數的限制

worker_rlimit_nofile 65536;

#前台運⾏nginx服務⽤於測試、docker等環境。

daemon off;

#是否開啟nginx的master-woker⼯作模式,僅⽤於開發除錯場景。

master_process off|on;

#事件模型配置引數

#定義錯誤頁面

#}}

引數

說明$remote_addr

客戶端的ip位址(**伺服器,顯示**服務ip)

$remote_user

用於記錄遠端客戶端的使用者名稱(一般為「-」)

$time_local

用於記錄訪問時間和時區

$request

用於記錄請求的url以及請求方法

$status

響應狀態碼,例如:200成功、404頁面找不到等。

$body_bytes_sent

給客戶端傳送的檔案主體內容位元組數

使用者所使用的**(一般為瀏覽器)

可以記錄客戶端ip,通過**伺服器來記錄客戶端的ip位址

可以記錄使用者是從哪個鏈結訪問過來的

編寫自動分割nginx日誌的指令碼

#!/bin/bash

#設定日誌檔案存放目錄

logs_path=/usr/local/nginx/logs

#備分檔名稱

yesterday=

$(date -d "yesterday" +%y%m%d%h%m)

#重新命名日誌檔案

mv$/access.log $/access_$.log

mv$/error.log $/error_$.log

## 向 nginx 主程序傳送 usr1 訊號。usr1 訊號是重新開啟日誌檔案

kill -usr1 $(

cat /usr/local/nginx/logs/nginx.pid)

設定linux的定時任務`cron

0 0 * * * root /usr/local/nginx/logs/nginxlogrotate.sh

nginx 學習筆記 3 nginx管理

nginx可以通過向其傳送訊號來進行管理。預設情況下主程序的程序id寫到檔案 usr local nginx logs nginx.pid中。當然也可以在配置檔案中自定義該pid檔案,自定義使用pid指令來進行修改。主程序支援如下訊號 term,int fast shutdown quit grac...

3 Nginx日誌管理 含Nginx日誌切割

我們觀察nginx的server段,可以看到如下類似資訊 access log logs host.access.log main 這說明 該server,它的訪問日誌的檔案是 logs host.access.log 使用的格式 main 格式.除了main格式,你可以自定義其他格式.main格式...

Nginx的配置與部署(3)Nginx請求處理機制

本文為您解讀,nginx是如何處理請求的,讓你從邏輯上有乙個清晰的認識。處理訪問到 nginx 所在 ip 位址的請求,並且這些請求的 http 頭資訊中的 host 為所要處理的網域名稱 如下以80埠為例 如下幾個 server 就對應響應的請求 server server server如果不主動...