nginx配置文件相關簡介

配置

nginx如果編譯的時候,不指定配置目錄的路徑,默認就是安裝目錄下的conf/nginx.conf文件

nginx配置文件相關簡介


全局塊

  1. 配置運行Nginx服務器用戶

如:

<code>user nobody nobody;   
/<code>

user是個主模塊指令,指定Nginx Worker進程運行以及用戶組。

<code> 指令格式:user user [group];  
/<code>

user:指定可以運行Nginx服務器的用戶;

group:可選項,可以運行Nginx服務器的用戶組。

如果user指令不配置或者配置為user nobody nobody,默認由nobody賬戶運行。



  1. worker process數

如:

<code>worker_processes 2;
/<code>

woker_processes是個主模塊指令,制定了Nginx要開啟的進程數。每個Nginx進程平均耗費10M~12M內存。建議指定和CPU的數量一致即可。

Nginx服務器實現併發處理服務的關鍵。

<code>指令格式:worker_processes number | auto; 
/<code>

number : Nginx 進程最多可以產生的worker process 數。

auto : Nginx 進程將自動檢測

在按照上面的配置格式配置了之後,假如上面的數目是4,那麼啟動Nginx服務器後,在後臺主機上查看Nginx的進程情況,可以看到應該是有4個Nginx進程。

  1. 錯誤日誌的存放路徑

如:

<code>error_log logs/error.log  notice;
/<code>

error_log 是個主模塊指令,用來定義全局錯誤日誌文件。日誌輸出級別有debug,info,notice,warn,error,erit可供選擇,其中,debug輸出日誌最為詳細,而crit輸出日誌最少。

<code>指定格式:error_log file  | stderr; 
/<code>

file : 日誌輸出到某個文件file stderr : 日誌輸出到標準錯誤輸出 (日誌輸出級別)。

  1. Nginx進程PID存放路徑

如:

<code>pid logs/nginx.pid;
/<code>

pid是個主模塊指令,用來指定進程pid的存儲文件位置。

Nginx進程是作為系統守護進程在進行,需要在某個文件中保存當前運行程序的主進程號,Nginx支持該保存文件路徑的定義。

<code>指令格式:pid file;
/<code>

file:指定存放路徑和文件名稱。如果不指定,則默認置於路徑 logs/nginx.pid

  1. worker_rlimit_nofile

如:

<code>worker_rlimit_nofile 65535;
/<code>

用來綁定worker進程和CPU,Linux內核2.4 以上可用

指定進程可以打開的最多文件描述數目,理論值應該是最多打開文件數(ulimit -n )與nginx進程數相除,但是Nginx分配請求並不是那麼均勻,所以最好與ulimit -n 的值保持一致。

現在在Linux2.6 內核下開啟文件打開數為65535,worker_rlimit_nofile 就相應應該填寫65535. 這是因為Nginx調度時請求到進程並不是那麼均衡,所以假如填寫10240,總併發量達到3-4萬時就有進程超過10240了,這就會返回502。

events

事件指令是設定Nginx的工作模式及連接數上限

events事件指令是設定Nginx的工作模式及連接數上限。每個配置選項的含義解釋如下:

  1. use

如:

<code>use epoll;
/<code>

use是事件模塊指令,用來指定Nginx的工作模式。Nginx支持的工作模式有select、poll、kqueue、epoll、rtsig和/dev/poll 。

其中select 和poll 都是標準的工作模式,kqueue和epoll是高效的工作模式,不同的是epoll用在Linux平臺上,而kqueue用在BSD系統中。對於Linux系統,epoll工作模式是首選。

  1. worker_connections

如:

<code>worker_connections65536; 

/<code>

work_connections也是個事件模塊指令,用於定義Nginx每個進程的最大連接數,默認是1024。


nginx配置文件相關簡介


http

配置http相關服務

  1. 定義MIMI-Type

如:

<code>include  mime.types;
/<code>
<code>指令格式:include file;
/<code>

該指令主要用於將其他的Nginx配置或第三方模塊的配置引用到當前的主配文件中,減少主配置文件的複雜度。

  1. default_type
<code>default_type  application/octet-stream;
/<code>

屬於HTTP核心模塊指令,這裡設定默認類型為二進制流。也就是當文件類型未定義時使用這種方式,

  1. 自定義服務日誌

log_format 是Nginx的HttpLog模塊指令,用於指定Nginx日誌的輸出日誌。當然其中還有更為詳細的配置,但是這裡只做大略的研究學習,不過分深入細節。

  1. 允許sendfile方式傳輸文件
<code>指令格式:sendfile  on; 
/<code>

這個指令中的參數on是表示開啟高效文件傳輸模式,默認是關閉狀態(off),將tcp_nopush和tcp_nodelay兩個指令設置為on用於防止網絡阻塞;

  1. 連接超時時間
<code>指令格式:keepalive_timeout number;
/<code>

如:

<code>keepalive_timeout 65;
/<code>

keepalive_timeout 設置客戶端連接保持活動的超時時間。在超過這個時間之後,服務器會關閉該連接;

server

server 塊是對虛擬主機的配置,server標誌定義虛擬主機開始,

  1. listen用於指定虛擬主機的服務端口,
  2. server_name 用來指定IP地址或域名,多個域名之間用空格分開。
  3. index用於設定訪問的默認首頁地址.。
  4. root指令用於指定虛擬主機的網頁根目錄,這個目錄可以是相對路徑,也可以是絕對路徑。
  5. charset用於設置網頁的默認編碼格式。
  6. access_log 用來指定虛擬主機的訪問日誌存放路徑,最後的main 用於指定訪問日誌的輸出格式。

location

URL地址匹配是進行Nginx配置中最靈活的部分。

location支持正則表達式匹配,也支持條件判斷匹配,用戶可以通過location指令實現Nginx對動、靜態網頁進行過濾處理。

使用location URL匹配配置還可以實現反向代理,用於實現PHP動態解析或者負載負載均衡。

  1. location配置
  2. 請求根目錄配置
  3. 更改location的URI
  4. 網站默認首頁配置


nginx配置文件相關簡介


分享到:


相關文章: