Nginx配置文件解析

user  nginx;

worker_processes  auto; #nginx開啓的進程數
worker_cpu_affinity  auto; #自動爲每一個進程綁定CPU
worker_rlimit_nofile    65536;  #每一個進程最大打開文件數

pid    /var/run/nginx.pid;    #PID文件存放路徑

events
{
use    epoll;                   
worker_connections    65536;   #每一個進程最大鏈接數
}

http
{
include    mime.types;   #文件擴展名與文件類型映射表
default_type    application/octet-stream; #默認文件類型
charset  utf-8;  #默認編碼

server_names_hash_bucket_size 128;  #服務器名字的hash表大小
client_header_buffer_size 4k;         #設置緩衝區大小
large_client_header_buffers 4 32k;  #設置緩衝區最大限制
client_max_body_size 8m;     #上傳文件大小限制

#該響應頭設置禁用瀏覽器對 Content-Type 類型進行猜想的行爲。由於不少狀況下服務器並無很好的配置 Content-Type 類型,所以瀏覽器會根據文檔的數據特徵來肯定類型,好比攻擊者可讓本來解析爲圖片的請求被解析爲 JavaScript。咱們發現以上三個比較常見的防攻擊配置,仍是很是實用的,建議使用,以前咱們的服務器只使用了 add_header X-Frame-Options "SAMEORIGIN"; 配置。
    add_header    X-Content-Type-Options nosniff;
    
    #X-Frame-Options 響應頭是用來給瀏覽器指示容許一個頁面能否在 <frame>, <iframe> 或者 <object> 中展示的標記。網站可使用此功能,來確保本身網站的內容沒有被嵌到別人的網站中去,也從而避免了點擊劫持 (clickjacking) 的攻擊。 
    add_header    X-Frame-Options SAMEORIGIN;
    
    #XSS 是跨站腳本攻擊,是比較常見的網絡攻擊手段,改字段指示瀏覽器是否爲當前頁面開啓瀏覽器內建的 XSS 過濾機制。 1 表示容許過濾器,mode=block 指示瀏覽器在檢測到 XSS 攻擊後禁止加載整個頁面。   
    add_header    X-XSS-Protection "1; mode=block";    

open_file_cache max=65536 inactive=20s;  #打開文件最大緩存數量,inactive指通過20s後文件沒被請求後刪除緩存
open_file_cache_valid 30s;   #間隔30s檢查一次緩存信息
    open_file_cache_min_uses 1; #open_file_cache指令中的inactive參數時間內文件的最少使用次數,若是超過這個數字,文件描述符一直是在緩存中打開的

sendfile on;  #開啓高效文件傳輸模式,sendfile指令指定nginx是否調用sendfile函數來輸出文件,對於普通應用設爲on。如進行下載等應用磁盤IO重負載應用,可設置爲off,以平衡磁盤與網絡I/O處理速度,下降系統的負載。注意:若是圖片顯示不正常把這個改爲off。

tcp_nopush on;  #數據包最大時,一次傳輸
keepalive_timeout 60; #長鏈接超時時間
tcp_nodelay on;  #禁用nagle算法,不緩存數據
server_tokens off; #隱藏nginx版本號
port_in_redirect off; #302跳轉時不添加端口號

   #指定鏈接到後端FastCGI的超時時間
    fastcgi_connect_timeout 300;

    #向FastCGI傳送請求的超時時間,這個值是指已經完成兩次握手後向FastCGI傳送請求的超時時間
    fastcgi_send_timeout 300;

    #接收FastCGI應答的超時時間,這個值是指已經完成兩次握手後接收FastCGI應答的超時時間
    fastcgi_read_timeout 300;

#指定讀取FastCGI應答第一部分須要用多大的緩衝區,這裏能夠設置爲fastcgi_buffers指令指定的緩衝區大小,上面的指令指定它將使用1 個64k的緩衝區去讀取應答的第一部分,即應答頭,其實這個應答頭通常狀況下都很小(不會超過1k),可是你若是在fastcgi_buffers指令中 指定了緩衝區的大小,那麼它也會分配一個fastcgi_buffers指定的緩衝區大小去緩存
    fastcgi_buffer_size 64k;

#指定本地須要用多少和多大的緩衝區來緩衝FastCGI的應答,即4個64k的緩衝區緩存,超過256k部分會緩存到fastcgi_temp指定的路徑中
    fastcgi_buffers 4 64k;
    #高負荷下緩衝大小(fastcgi_buffers*2)
    fastcgi_busy_buffers_size 128k;

    #在寫入fastcgi_temp_path時將用多大的數據塊,默認值是fastcgi_buffers的兩倍
    fastcgi_temp_file_write_size 128k;

#open gzip  
gzip on; #開啓gzip壓縮
gzip_vary on;  #通知客戶端使用了gzip壓縮
gzip_min_length    1k; #最小壓縮文件大小
gzip_buffers 4 16k; #壓縮緩衝區
gzip_http_version 1.0;
gzip_comp_level    2;  #壓縮等級
gzip_types    text/plain text/javascript application/x-javascript text/css application/xml image/jpeg image/png image/gif image/bmp;
    #壓縮類型,默認就已經包含text/html,因此下面就不用再寫了,寫上去也不會有問題,可是會有一個warn

gzip_disable "MSIE [1-6]\.(?!.*SV1)"; #IE6前的版本不啓用壓縮

#Proxy
proxy_connect_timeout    600;  #nginx跟後端服務器鏈接超時時間(代理鏈接超時)
proxy_read_timeout    600; #鏈接成功後,後端服務器響應時間(代理接收超時)
proxy_send_timeout    600; #後端服務器數據回傳時間(代理髮送超時)
proxy_buffer_size    16k; #設置代理服務器(nginx)保存用戶頭信息的緩衝區大小
proxy_buffers    4    32k; #proxy_buffers緩衝區,網頁平均在32k如下的設置
proxy_busy_buffers_size    64k; #高負荷下緩衝大小(proxy_buffers*2)
proxy_temp_file_write_size    64k;  #在寫入proxy_temp_path時將用多大的數據塊


#Limit
limit_req_zone $binary_remote_addr  zone=xxx:10m rate=5r/s;
    #會話狀態儲存的空間10m,同一IP地址請求連接頻率最多5次/秒
    
    #cache
    proxy_cache_path /dev/shm levels=1:2 keys_zone=cache_one:20m max_size=1g;
#path:定義緩存放在磁盤的哪一個目錄下。此處表示定義在/usr/local/nginx/cache_dir目錄下。      目錄不存在會自動建立。
#levels:定義緩存目錄的級別,同時定義緩存目錄名稱的字符數。例如levels=1:2:2表示3級目錄,且第一級目錄名1個字符,第二級目錄2個字符,第三級目錄2個字符。目錄最多3級,目錄名最多爲2個字符。例如上例中"levels=1:2"產生的緩存文件路徑多是這樣的"/usr/local/nginx/cache_dir/d/f1/50a3269acaa7774c02d4da0968124f1d",注意其中加粗的字體。
#keys_zone:定義緩存標識名稱和內存中緩存的最大空間。name部分必須惟一,在後面會引用name來表示使用該緩存方法。
#max_size:定義磁盤中緩存目錄的最大空間。即path定義的文件最大空間。


#Log format #日誌格式

log_format  access  '$remote_addr - $remote_user [$time_local] "$request" '
  '$status $body_bytes_sent "$http_referer" '
  '"$http_user_agent" $http_x_forwarded_for';

server
{
listen 80 default;
server_name _;
return 403;
}

include vhosts/*.conf;  #導入vhosts中的conf文件

}
相關文章
相關標籤/搜索