nginx.conf經常使用配置解析

1、全局配置

user username groupname

運行用戶及用戶組html

worker_processes auto

啓動進程,一般設置成和cpu數量相等的一個數值,默認爲1。能夠設置爲auto,這樣nginx會自動根據本機的cpu內核數生成對應數量的worker進程。能夠經過lscpu命令肯定可用的核心數。nginx

pid log/nginx.pid

進程pid的存放位置後端

error_log log/error.log warn;
error_log log/info.log info;

設置日誌打印位置服務器

server_tokens off

隱藏版本號spa

2、event相關

events {
    worker_connections 4096;
}

events模塊包含了nginx有關鏈接處理的配置。代理

worker_connections 4096

一個worker可以同時打開的最大鏈接數,該值最大爲workerrlimitnofile的值日誌

  • 在nginx做爲http服務器時,最大鏈接數爲workerprocesses * workerconnectionscode

  • 在nginx做爲反向代理服務器時,最大鏈接數爲workerprocesses*workerconnections/2server

3、緩衝區相關配置

請求緩衝區在NGINX請求處理中起着重要做用。 在接收到請求時,NGINX將其寫入這些緩衝區。 這些緩衝區中的數據可做爲NGINX變量使用,例如$request_body。 若是緩衝區與請求大小相比較小,則數據將寫入磁盤上的文件,所以將涉及I/O操做。 NGINX提供了能夠改變請求緩衝區的各類指令。htm

client_header_buffer_size 8k

它爲請求頭分配一個緩衝區。 若是請求頭大小大於指定的緩衝區,則使用largeclientheader_buffers指令分配更大的緩衝區。

client_max_body_size 130m

此指令設置NGINX能處理的最大請求主體大小。 若是請求大於指定的大小,則NGINX發回HTTP 413(Request Entity too large)錯誤。 若是服務器處理大文件上傳,則該指令很是重要。

proxy_buffer_size   64k

1 解決後端服務傳輸數據過多,實際上是header過大的問題,參考博客

2 後端服務器的相應頭會放到proxybuffersize當中,這個大小默認等於proxybuffers當中的設置單個緩衝區的大小。 proxybuffersize只是響應頭的緩衝區,沒有必要也跟着設置太大。 proxybuffer_size最好單獨設置,通常設置個4k就夠了。

proxy_buffers   8 64k

1 若某些請求的響應過大,則超過buffers的部分將被緩衝到硬盤(緩衝目錄由temppath指令指定), 固然這將會使讀取響應的速度減慢, 影響用戶體驗. 可使用proxymaxtempfile_size指令關閉磁盤緩衝  

2 proxybuffers的緩衝區大小通常會設置的比較大,以應付大網頁。 proxybuffers當中單個緩衝區的大小是由系統的內存頁面大小決定的,Linux系統中通常爲4k。 proxy_buffers由緩衝區數量和緩衝區大小組成的。總的大小爲number*size

相關文章
相關標籤/搜索