配置nginx的那些参数
一、首先來看下nginx的全局文件結構:
... #全局塊 events { #events塊... } http #http塊 {... #http全局塊server #server塊{ ... #server全局塊location [PATTERN] #location塊{...}location [PATTERN] {...}}server{...}... #http全局塊 }1、全局塊:配置影響nginx全局的指令。一般有運行nginx服務器的用戶組,nginx進程pid存放路徑,日志存放路徑,配置文件引入,允許生成worker process數等。
2、events塊:配置影響nginx服務器或與用戶的網絡連接。有每個進程的最大連接數,選取哪種事件驅動模型處理連接請求,是否允許同時接受多個網路連接,開啟多個網絡連接序列化等。
3、http塊:可以嵌套多個server,配置代理,緩存,日志定義等絕大多數功能和第三方模塊的配置。如文件引入,mime-type定義,日志自定義,是否使用sendfile傳輸文件,連接超時時間,單連接請求數等。
4、server塊:配置虛擬主機的相關參數,一個http中可以有多個server。
5、location塊:配置請求的路由,以及各種頁面的處理情況。
二、下面是舉例的一個參數配置:
user root; #配置用戶或者組 worker_processes 8; #允許生成的進程數,默認為1 這里可以和自己服務器的CPU核數保持一致error_log logs/error.log; #制定日志路徑,級別。 級別依次為:debug|info|notice|warn|error|crit|alert|emerg pid logs/nginx.pid; #指定nginx進程運行文件存放地址worker_rlimit_nofile 65535; #worker進程最大打開文件數 events {worker_connections 65535; #最大連接數,默認為1024 }http {include mime.types; #文件擴展名與文件類型映射表default_type application/octet-stream; #默認文件類型,默認為text/plain#access_log logs/access.log main; #訪問日志 能夠幫助我們快速的定位問題,并且知道用戶訪問的狀態,瀏覽器,Ip,接口地址等#access_log off; #解開注釋后 將取消打印服務日志 sendfile on; #允許sendfile方式傳輸文件,默認為off,可以在http塊,server塊,location塊。keepalive_timeout 65; #連接超時時間,可以在http,server,location塊。client_max_body_size 30M; #設置客戶端請求體的最大允許大小client_body_buffer_size 30M; #設置讀取客戶端請求體的緩沖區大小server {listen 80; #監聽80端口server_name localhost; #服務器的主機名location / {autoindex on;root /home/admin; #根目錄index index.html; #設置默認頁proxy_set_header x-forwarded-for $proxy_add_x_forwarded_for; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; location設置了proxy_set_header,就不繼承,但繼承默認值,默認值優先級低于 location設置。} }三、說一下幾個參數:
1.worker_processes ?8;? ? #允許生成的進程數
這里可以和自己服務器的CPU核數保持一致。
2.worker_rlimit_nofile 65535;? ? #worker進程最大打開文件數
3.client_max_body_size 30M;? ??#設置客戶端請求體的最大允許大小
默認為 1M,表示 客戶端請求服務器最大允許大小,在“Content-Length”請求頭中指定。
如果請求的正文數據大于client_max_body_size,HTTP協議會報錯 413 Request Entity Too Large。就是說如果請求的正文大于client_max_body_size,一定是失敗的,如果需要上傳大文件,一定要修改該值。
4.client_body_buffer_size 30M;? ??#設置讀取客戶端請求體的緩沖區大小
Nginx分配給請求數據的Buffer大小,如果請求的數據小于client_body_buffer_size直接將數據先在內存中存儲。如果請求的值大于client_body_buffer_size小于client_max_body_size,就會將數據先存儲到臨時文件中。如果追求效率,就設置 client_max_body_size client_body_buffer_size相同的值,這樣就不會存儲臨時文件,直接存儲在內存了。
總結
以上是生活随笔為你收集整理的配置nginx的那些参数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 记录解决nginx的access.log
- 下一篇: 基于数据挖掘的旅游推荐APP(一):开篇