1. 程式人生 > >nginx配置檔案簡談------初步認識nginx的配置檔案

nginx配置檔案簡談------初步認識nginx的配置檔案

  最近,在初步解除nginx的時候,剛看到配置檔案的時候,自己處於一臉懵的狀態,然後就各種查詢才明白了nginx配置檔案的一些意思,我發現自己不明白nginx的配置檔案是因為一開始的時候就不知道nginx到底可以做些什麼!我覺得剛開始接觸的話,可以先了解下nginx可以做些什麼會更好,閒話不多說,我們從剛安裝完nginx開始。

  一起來看下nginx的配置檔案:

#user  nobody;
worker_processes  1;
 
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
 
#pid        logs/nginx.pid;
 
 
events {
    worker_connections  1024;
}
 
 
http {
    include       mime.types;
    default_type  application/octet-stream;
 
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on;
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65;
 
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
 
        charset utf-8;
    # /表示根目錄,該配置表示Nginx預設開啟/www下的index.html  
	location / { 
	    root index.html;
	    index  index.html index.htm;
	}
    }
 }

然後一起來看下這些的意思:

第一部分:

#user  nobody;                      ------ 這裡代表的是該nginx執行的worker程序的使用者跟使用者組,一般沒什麼指定的使用者可以是預設
worker_processes  1;            ------ 這裡的意思是woker的程序數量,跟後面的連線數有關(後面再說)建議是CPU的核數
#error_log  logs/error.log;
#error_log  logs/error.log  notice;  ------ 這三個都是日誌檔案的級別,選擇哪個,就是採用哪個日記級別還有warn和crit
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;                ------ 指定程序id儲存檔案的位置,普通使用可以註釋

第二部分:

events {
    worker_connections  1024;  ------ 每個程序可以處理的最大連線數,理論上每臺nginx的連線數就是它X worker_processes數

}

第三部分:也是我們最常用的;餓

http {
    include       mime.types;  ------ 副檔名跟檔案型別對映表
    default_type  application/octet-stream; ------預設的檔案型別
    # 定義日誌的格式問題
    #log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
    #                  '$status $body_bytes_sent "$http_referer" '
    #                  '"$http_user_agent" "$http_x_forwarded_for"';
 
    #access_log  logs/access.log  main;
 
    sendfile        on; ------ 是否開啟高效傳輸模式
    #tcp_nopush     on;
 
    #keepalive_timeout  0;
    keepalive_timeout  65; -----保持連線的時間
 
    #gzip  on;  ------ 是否開啟gzip壓縮
    server {
        listen       80; ------ 監聽的埠
        server_name  localhost;  ------ 伺服器的域名
 
    # /表示根目錄,該配置表示Nginx預設開啟/www下的index.html  
    location / { 
        #------ 我們主要是改這裡,一般改成我們應用的上下文,然後nginx攔截轉到我們的應用裡面,這裡的意思就是別人如果訪問80          # 埠可以跳轉到本地8080埠的應用
        proxy_pass http://127.0.0.1:8080

    }
    }

一開始,我覺得了解下這些就可以了,然後再實踐下,除了這些nginx還能做到的事情很多,比如負載均衡、限制IP訪問等等。