Nginx的ngx_http_fastcgi_module模組

十五十六發表於2018-09-10

ngx_http_fastcgi_module模組:

這個模組允許傳送請求給fastcgi服務

1、fastcgi_pass address;

將請求傳送給address,address為fastcgi server的地址;

2、fastcgi_index name;

fastcgi預設的主頁資源;

3、fastcgi_param parameter value [if_not_empty];

設定應該傳遞給FASCGI伺服器的引數。該值可以包含文字、變數以及它們的組合。

配置示例1:

前提:配置好fpm server
        location ~ \.php$ {
            root           /var/www/html;
            fastcgi_pass   127.0.0.1:9000;##fpm在本機
            fastcgi_index  index.php; ##起始頁為index.php
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name; ##請求的php檔案的目錄,這裡是在/var/www/html/目錄下存放php檔案。
            include        fastcgi_params; ##傳遞給fpm server的引數。
        }

4、fastcgi_cache_path

定義fastcgi的快取;快取位置為磁碟上的檔案系統,由path所指定路徑來定義;
格式:fastcgi_cache_path path [levels=levels] [use_temp_path=on|off] keys_zone=name:size [inactive=time] [max_size=size] [manager_files=number] [manager_sleep=time] [manager_threshold=time] [loader_files=number] [loader_sleep=time] [loader_threshold=time] [purger=on|off] [purger_files=number] [purger_sleep=time] [purger_threshold=time];

  • levels=levels:快取目錄的層級數量,以及每一級的目錄數量;
  • keys_zone=name:size:k/v對映的記憶體空間的名稱及大小
  • inactive=time:非活動時長
  • max_size=size:磁碟上用於快取資料的快取空間上限

5、fastcgi_cache zone | off;

呼叫指定的快取空間來快取資料;http, server, location

6、fastcgi_cache_key string;

定義用作快取項的key的字串;

7、fastcgi_cache_methods GET | HEAD | POST …;

為哪些請求方法使用快取;

8、fastcgi_cache_min_uses number;

快取空間中的快取項在inactive定義的非活動時間內至少要被訪問到此處所指定的次數方可被認作活動項;

9、fastcgi_cache_valid [code …] time;

不同的響應碼各自的快取時長;

10、fastcgi_keep_conn on | off;

預設情況下,fastcgi 伺服器將在傳送響應後關閉連線。但是,當這個指令設定為ON值時,Nginx將指示fastcgi server保持連線開啟。

示例:

worker_processes  1;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    keepalive_timeout  65;
    fastcgi_cache_path /usr/local/nginx/fastcgi_cache levels=1:2:1 keys_zone=fcgi:20m inactive=120s;
    server {
        listen       80;
        server_name  localhost;
        root   /var/www/html;
        location / {
            index  index.html index.htm;
        }
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        location ~ \.php$ {
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
            include        fastcgi_params;
            fastcgi_cache fcgi;
            fastcgi_cache_key $request_uri;
            fastcgi_cache_valid 200 302 10m;
            fastcgi_cache_valid 301 1h;
            fastcgi_cache_valid any 1m; 
            fastcgi_keep_conn on;
        }
    }
}

訪問一次192.168.253.128(nginx伺服器)
這裡寫圖片描述

然後我們看快取目錄是否生成了快取的檔案

這裡寫圖片描述

相關文章