ngnix——FastCGI 相關參數調優

當 LNMP 組合工做時,首先是用戶經過瀏覽器輸入域名請求 Nginx Web 服務,若是請求的是靜態資源,則由 Nginx 解析返回給用戶;若是是動態請求(如 PHP),那麼 Nginx 就會把它經過 FastCGI 接口發送給 PHP 引擎服務(即 php-fpm)進行解析,若是這個動態請求要讀取數據庫數據,那麼 PHP 就會繼續向後請求 MySQL 數據庫,以讀取須要的數據,並最終經過 Nginx 服務把獲取的數據返回給用戶,這就是 LNMP 環境的基本請求流程。 FastCGI 介紹:CGI 通用網關接口,是 HTTP 服務器與其餘機器上的程序服務通訊交流的一種工具,CGI 接口的性能較差,每次 HTTP 服務器遇到動態程序時都須要從新啓動解析器來執行解析,以後結果纔會被返回 HTTP 服務器,所以就有了 FastCGI ,FastCGI 是一個在 HTTP 服務器和動態腳本語言間通訊的接口,主要是把動態語言和 HTTP 服務器分離開來,使得 HTTP 服務器專注地處理靜態請求,提升總體性能,在 Linux 下,FastCGI 接口即爲 socket ,這個 socket 能夠是文件 socket 也能夠是 IP socketphp

worker_processes 1;html

events {python

worker_connections 1024;程序員

}數據庫

http {後端

include mime.types;瀏覽器

default_type application/octet-stream;緩存

sendfile on;服務器

keepalive_timeout 65;app

fastcgi_connect_timeout 240; # Nginx服務器和後端FastCGI服務器鏈接的超時時間

fastcgi_send_timeout 240; # Nginx容許FastCGI服務器返回數據的超時時間,即在規定時間內後端服務器必須傳完全部的數據,不然Nginx將斷開這個鏈接

fastcgi_read_timeout 240; # Nginx從FastCGI服務器讀取響應信息的超時時間,表示鏈接創建成功後,Nginx等待後端服務器的響應時間

fastcgi_buffer_size 64k; # Nginx FastCGI 的緩衝區大小,用來讀取從FastCGI服務器端收到的第一部分響應信息的緩衝區大小

fastcgi_buffers 4 64k; # 設定用來讀取從FastCGI服務器端收到的響應信息的緩衝區大小和緩衝區數量

fastcgi_busy_buffers_size 128k; # 用於設置系統很忙時可使用的 proxy_buffers 大小

fastcgi_temp_file_write_size 128k; # FastCGI 臨時文件的大小

# fastcti_temp_path /data/ngx_fcgi_tmp; # FastCGI 臨時文件的存放路徑

fastcgi_cache_path /data/ngx_fcgi_cache levels=2:2 keys_zone=ngx_fcgi_cache:512m inactive=1d max_size=40g; # 緩存目錄

server {

listen 80;

server_name www.abc.com;

location / {

root html/www;

index index.html index.htm;

}

location ~ .*.(php|php5)?$ {

root html/www;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

include fastcgi.conf;

fastcgi_cache ngx_fcgi_cache; # 緩存FastCGI生成的內容,好比PHP生成的動態內容

fastcgi_cache_valid 200 302 1h; # 指定http狀態碼的緩存時間,這裏表示將200和302緩存1小時

fastcgi_cache_valid 301 1d; # 指定http狀態碼的緩存時間,這裏表示將301緩存1天

fastcgi_cache_valid any 1m; # 指定http狀態碼的緩存時間,這裏表示將其餘狀態碼緩存1分鐘

fastcgi_cache_min_uses 1; # 設置請求幾回以後響應被緩存,1表示一次即被緩存

fastcgi_cache_use_stale error timeout invalid_header http_500; # 定義在哪些狀況下使用過時緩存

fastcgi_cache_key http://$host$request_uri; # 定義 fastcgi_cache 的 key

}

}

}

做者簡介: 
陳志珂(頭條號:強扭的瓜很差吃)公衆號「鉛筆學園」運維內容合做做者之一,目前就任於中國最大的安卓應用軟件公司,任高級工程師如今公司任php開發工程師,python開發工程師,高級運維工程師。
鉛筆學園:IT資源分享|知識分享,作初級程序員的指明燈

相關文章
相關標籤/搜索