一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

FastCGI模塊(FastCGI)

 日積月累-隨意 2012-07-01

FastCGI模塊(FastCGI)

·摘要

這個模塊允許nginx同F(xiàn)astCGI協(xié)同工作,并且控制哪些參數(shù)將被安全傳遞。
例:
location / {  fastcgi_pass   localhost:9000;  fastcgi_index  index.php;   fastcgi_param  SCRIPT_FILENAME  /home/www/scripts/php$fastcgi_script_name;  fastcgi_param  QUERY_STRING     $query_string;  fastcgi_param  REQUEST_METHOD   $request_method;  fastcgi_param  CONTENT_TYPE     $content_type;  fastcgi_param  CONTENT_LENGTH   $content_length;}
一個在緩存中的實例:
http {  fastcgi_cache_path   /path/to/cache  levels=1:2                       keys_zone=NAME:10m                       inactive=5m;   server {    location / {      fastcgi_pass    http://127.0.0.1;      fastcgi_cache   NAME;      fastcgi_cache_valid   200 302  1h;      fastcgi_cache_valid   301      1d;      fastcgi_cache_valid   any      1m;      fastcgi_cache_min_uses  1;      fastcgi_cache_use_stale error  timeout invalid_header http_500;    }  }}
0.7.48以后,緩存遵循后端服務(wù)器的Cache-Control, Expires等,0.7.66版本以后,"Cache-Control:"private"和"no-store"頭同樣被遵循。

·指令

fastcgi_buffer_size

語法:fastcgi_buffer_size the_size ;
默認值:fastcgi_buffer_size 4k/8k ;
使用字段:http, server, location
這個參數(shù)指定將用多大的緩沖區(qū)來讀取從FastCGI服務(wù)器到來應(yīng)答的第一部分。
通常來說在這個部分中包含一個小的應(yīng)答頭。
默認的緩沖區(qū)大小為fastcgi_buffers指令中的每塊大小,可以將這個值設(shè)置更小。

fastcgi_buffers

語法:fastcgi_buffers the_number is_size;
默認值:fastcgi_buffers 8 4k/8k;
使用字段:http, server, location
這個參數(shù)指定了從FastCGI服務(wù)器到來的應(yīng)答,本地將用多少和多大的緩沖區(qū)讀取,默認這個參數(shù)等于分頁大小,根據(jù)環(huán)境的不同可能是4K, 8K或16K。

fastcgi_cache

語法:fastcgi_cache zone|off;
默認值:off
使用字段:http, server, location
為緩存實際使用的共享內(nèi)存指定一個區(qū)域,相同的區(qū)域可以用在不同的地方。

fastcgi_cache_key

語法:fastcgi_cache_key line
默認值:none
使用字段:http, server, location
設(shè)置緩存的關(guān)鍵字,如:
fastcgi_cache_key localhost:9000$request_uri;

fastcgi_cache_path

語法:fastcgi_cache_path path [levels=m:n] keys_zone=name:size [inactive=time] [max_size=size]
默認值:none
使用字段:http
clean_time參數(shù)在0.7.45版本中已經(jīng)移除。
這個指令指定FastCGI緩存的路徑以及其他的一些參數(shù),所有的數(shù)據(jù)以文件的形式存儲,緩存的關(guān)鍵字(key)和文件名為代理的url計算出的MD5值。
Level參數(shù)設(shè)置緩存目錄的目錄分級以及子目錄的數(shù)量,例如指令如果設(shè)置為:
fastcgi_cache_path  /data/nginx/cache  levels=1:2   keys_zone=one:10m;
那么數(shù)據(jù)文件將存儲為:
/data/nginx/cache/c/29/b7f54b2df7773722d382f4809d65029c
緩存中的文件首先被寫入一個臨時文件并且隨后被移動到緩存目錄的最后位置,0.8.9版本之后可以將臨時文件和緩存文件存儲在不同的文件系統(tǒng),但是需要明白這種移動并不是簡單的原子重命名系統(tǒng)調(diào)用,而是整個文件的拷貝,所以最好在fastcgi_temp_path和fastcgi_cache_path的值中使用相同的文件系統(tǒng)。
另外,所有活動的關(guān)鍵字及數(shù)據(jù)相關(guān)信息都存儲于共享內(nèi)存池,這個值的名稱和大小通過key_zone參數(shù)指定,inactive參數(shù)指定了內(nèi)存中的數(shù)據(jù)存儲時間,默認為10分鐘。
max_size參數(shù)設(shè)置緩存的最大值,一個指定的cache manager進程將周期性的刪除舊的緩存數(shù)據(jù)。

fastcgi_cache_methods

語法:fastcgi_cache_methods [GET HEAD POST];
默認值:fastcgi_cache_methods GET HEAD;
使用字段:main,http,location
無法禁用GET/HEAD ,即使你只是這樣設(shè)置:
fastcgi_cache_methods  POST;

fastcgi_cache_min_uses

語法:fastcgi_cache_min_uses n
默認值:fastcgi_cache_min_uses 1
使用字段:http, server, location
指令指定了經(jīng)過多少次請求的相同URL將被緩存。

fastcgi_cache_use_stale

語法:fastcgi_cache_use_stale [updating|error|timeout|invalid_header|http_500]
默認值:fastcgi_cache_use_stale off;
使用字段:http, server, location
在某些網(wǎng)關(guān)錯誤、超時的情況下,nginx都將傳送過期的緩存數(shù)據(jù)。

fastcgi_cache_valid

語法:fastcgi_cache_valid [http_error_code|time]
默認值:none
使用字段:http, server, location
為指定的http返回代碼指定緩存時間,例如:
fastcgi_cache_valid  200 302  10m;fastcgi_cache_valid  404      1m;
將響應(yīng)狀態(tài)碼為200和302緩存10分鐘,404緩存1分鐘。
默認情況下緩存只處理200,301,302的狀態(tài)。
同樣也可以在指令中使用any表示任何一個。
fastcgi_cache_valid  200 302 10m;fastcgi_cache_valid  301 1h;fastcgi_cache_valid  any 1m;

fastcgi_connect_timeout

語法:fastcgi_connect_timeout time
默認值:fastcgi_connect_timeout 60
使用字段:http, server, location
指定同F(xiàn)astCGI服務(wù)器的連接超時時間,這個值不能超過75秒。

fastcgi_index

語法:fastcgi_index file
默認值:none
使用字段:http, server, location
如果URI以斜線結(jié)尾,文件名將追加到URI后面,這個值將存儲在變量$fastcgi_script_name中。例如:
fastcgi_index  index.php;fastcgi_param  SCRIPT_FILENAME  /home/www/scripts/php$fastcgi_script_name;
請求"/page.php"的參數(shù)SCRIPT_FILENAME將被設(shè)置為"/home/www/scripts/php/page.php",但是"/"為"/home/www/scripts/php/index.php"。

fastcgi_hide_header

語法:fastcgi_hide_header name
使用字段:http, server, location
默認情況下nginx不會將來自FastCGI服務(wù)器的"Status"和"X-Accel-..."頭傳送到客戶端,這個參數(shù)也可以隱藏某些其它的頭。
如果必須傳遞"Status"和"X-Accel-..."頭,則必須使用fastcgi_pass_header強制其傳送到客戶端。

fastcgi_ignore_client_abort

語法:fastcgi_ignore_client_abort on|off
默認值:fastcgi_ignore_client_abort off
使用字段:http, server, location
如果當前連接請求FastCGI服務(wù)器失敗,為防止其與nginx服務(wù)器斷開連接,可以用這個指令。

fastcgi_ignore_headers

語法:fastcgi_ignore_headers name [name...]
使用字段:http, server, location
這個指令禁止處理一些FastCGI服務(wù)器應(yīng)答的頭部字段,比如可以指定像"X-Accel-Redirect", "X-Accel-Expires", "Expires"或"Cache-Control"等。

fastcgi_intercept_errors

語法:fastcgi_intercept_errors on|off
默認值:fastcgi_intercept_errors off
使用字段:http, server, location
這個指令指定是否傳遞4xx和5xx錯誤信息到客戶端,或者允許nginx使用error_page處理錯誤信息。
你必須明確的在error_page中指定處理方法使這個參數(shù)有效,正如Igor所說“如果沒有適當?shù)奶幚矸椒?,nginx不會攔截一個錯誤,這個錯誤不會顯示自己的默認頁面,這里允許通過某些方法攔截錯誤。

fastcgi_max_temp_file_size

語法:fastcgi_max_temp_file_size 0
默認值:?
使用字段:?
根據(jù)源代碼關(guān)閉FastCGI緩沖。

fastcgi_no_cache

語法:fastcgi_no_cache variable [...]
默認值:None
使用字段:http, server, location
確定在何種情況下緩存的應(yīng)答將不會使用,示例:
  fastcgi_no_cache $cookie_nocache  $arg_nocache$arg_comment;  fastcgi_no_cache $http_pragma     $http_authorization;
如果為空字符串或者等于0,表達式的值等于false,例如,在上述例子中,如果在請求中設(shè)置了cookie "nocache",緩存將被繞過。

fastcgi_next_upstream

語法:fastcgi_next_upstream error|timeout|invalid_header|http_500|http_503|http_404|off
默認值:fastcgi_next_upstream error timeout
使用字段:http, server, location
指令指定哪種情況請求將被轉(zhuǎn)發(fā)到下一個FastCGI服務(wù)器:
·error — 傳送中的請求或者正在讀取應(yīng)答頭的請求在連接服務(wù)器的時候發(fā)生錯誤。
·timeout — 傳送中的請求或者正在讀取應(yīng)答頭的請求在連接服務(wù)器的時候超時。
·invalid_header — 服務(wù)器返回空的或者無效的應(yīng)答。
·http_500 — 服務(wù)器返回500應(yīng)答代碼。
·http_503 — 服務(wù)器返回503應(yīng)答代碼。
·http_404 — 服務(wù)器返回404應(yīng)答代碼。
·off — 禁止請求傳送到下一個FastCGI服務(wù)器。
注意傳送請求在傳送到下一個服務(wù)器之前可能已經(jīng)將空的數(shù)據(jù)傳送到了客戶端,所以,如果在數(shù)據(jù)傳送中有錯誤或者超時發(fā)生,這個指令可能無法修復一些傳送錯誤。

fastcgi_param

語法:fastcgi_param parameter value
默認值:none
使用字段:http, server, location
指定一些傳遞到FastCGI服務(wù)器的參數(shù)。
可以使用字符串,變量,或者其組合,這里的設(shè)置不會繼承到其他的字段,設(shè)置在當前字段會清除掉任何之前的定義。
下面是一個PHP需要使用的最少參數(shù):
  fastcgi_param  SCRIPT_FILENAME  /home/www/scripts/php$fastcgi_script_name;  fastcgi_param  QUERY_STRING     $query_string;
PHP使用SCRIPT_FILENAME參數(shù)決定需要執(zhí)行哪個腳本,QUERY_STRING包含請求中的某些參數(shù)。
如果要處理POST請求,則需要另外增加三個參數(shù):
  fastcgi_param  REQUEST_METHOD   $request_method;  fastcgi_param  CONTENT_TYPE     $content_type;  fastcgi_param  CONTENT_LENGTH   $content_length;
如果PHP在編譯時帶有--enable-force-cgi-redirect,則必須傳遞值為200的REDIRECT_STATUS參數(shù):
fastcgi_param  REDIRECT_STATUS  200;

fastcgi_pass

語法:fastcgi_pass fastcgi-server
默認值:none
使用字段:http, server, location
指定FastCGI服務(wù)器監(jiān)聽端口與地址,可以是本機或者其它:
fastcgi_pass   localhost:9000;
使用Unix socket:
fastcgi_pass   unix:/tmp/fastcgi.socket;
同樣可以使用一個upstream字段名稱:
upstream backend  {  server   localhost:1234;} fastcgi_pass   backend;

fastcgi_pass_header

語法:fastcgi_pass_header name
默認值:none
使用字段:http, server, location

fastcgi_read_timeout

語法:fastcgi_read_timeout time
默認值:fastcgi_read_timeout 60
使用字段:http, server, location
前端FastCGI服務(wù)器的響應(yīng)超時時間,如果有一些直到它們運行完才有輸出的長時間運行的FastCGI進程,或者在錯誤日志中出現(xiàn)前端服務(wù)器響應(yīng)超時錯誤,可能需要調(diào)整這個值。

fastcgi_redirect_errors

語法:fastcgi_redirect_errors on|off
指令重命名為fastcgi_intercept_errors。

fastcgi_send_timeout

語法:fastcgi_send_timeout time

默認值:fastcgi_send_timeout 60

使用字段:http, server, location
指令為上游服務(wù)器設(shè)置等待一個FastCGI進程的傳送數(shù)據(jù)時間,如果有一些直到它們運行完才有輸出的長時間運行的FastCGI進程,那么可以修改這個值,如果你在上有服務(wù)器的error log里面發(fā)現(xiàn)一些超時錯誤,那么可以恰當?shù)脑黾舆@個值。
指令指定請求服務(wù)器的超時時間,指完成了2次握手的連接,而不是完整的連接,如果在這期間客戶端沒有進行數(shù)據(jù)傳遞,那么服務(wù)器將關(guān)閉這個連接。

fastcgi_split_path_info

語法:fastcgi_split_path_info regex
使用字段:location
可用版本:0.7.31以上,示例:
location ~ ^(.+\.php)(.*)$ {...fastcgi_split_path_info ^(.+\.php)(.*)$;fastcgi_param SCRIPT_FILENAME /path/to/php$fastcgi_script_name;fastcgi_param PATH_INFO $fastcgi_path_info;fastcgi_param PATH_TRANSLATED $document_root$fastcgi_path_info;...}
請求"/show.php/article/0001"的參數(shù)SCRIPT_FILENAME將設(shè)置為"/path/to/php/show.php",參數(shù)PATH_INFO為"/article/0001"。

fastcgi_store

語法:fastcgi_store [on | off | path]
默認值:fastcgi_store off
使用字段:http, server, location
制定了存儲前端文件的路徑,參數(shù)on指定了將使用root和alias指令相同的路徑,off禁止存儲,此外,參數(shù)中可以使用變量使路徑名更明確:
fastcgi_store   /data/www$original_uri;
應(yīng)答中的"Last-Modified"頭將設(shè)置文件的最后修改時間,為了使這些文件更加安全,可以將其在一個目錄中存為臨時文件,使用fastcgi_temp_path指令。
這個指令可以用在為那些不是經(jīng)常改變的后端動態(tài)輸出創(chuàng)建本地拷貝的過程中。如:
location /images/ {  root                 /data/www;  error_page           404 = /fetch$uri;} location /fetch {  internal;   fastcgi_pass           fastcgi://backend;  fastcgi_store          on;  fastcgi_store_access   user:rw  group:rw  all:r;  fastcgi_temp_path      /data/temp;   alias                  /data/www;}
fastcgi_store并不是緩存,某些需求下它更像是一個鏡像。

fastcgi_store_access

語法:fastcgi_store_access users:permissions [users:permission ...]
默認值:fastcgi_store_access user:rw
使用字段:http, server, location
這個參數(shù)指定創(chuàng)建文件或目錄的權(quán)限,例如:
fastcgi_store_access  user:rw  group:rw  all:r;
如果要指定一個組的人的相關(guān)權(quán)限,可以不寫用戶,如:
fastcgi_store_access  group:rw  all:r;

fastcgi_temp_path

語法:fastcgi_temp_path path [level1 [level2 [level3]]]
默認值:fastcgi_temp_path fastcgi_temp
使用字段:http, server, location
指令指定存儲從別的服務(wù)器傳送來的數(shù)據(jù)臨時文件路徑,同樣可以指定三級目錄已經(jīng)哈希存儲,level的值指定為哈希設(shè)置多少標記,例如,在下列配置中:
fastcgi_temp_path  /spool/nginx/fastcgi_temp 1 2;
臨時文件類似如下:
/spool/nginx/fastcgi_temp/7/45/00000123457

·傳送到FastCGI服務(wù)器的相關(guān)參數(shù)

請求頭是以參數(shù)的形式傳送到FastCGI服務(wù)器,以具體應(yīng)用和腳本運行在FastCGI服務(wù)器上,這些參數(shù)通常以環(huán)境變量的形式取得,例如,"User-agent"頭以HTTP_USER_AGENT參數(shù)傳遞,除此之外還有一些其他的http頭,都可以用fastcgi_param指令自由傳遞。

·變量

$fastcgi_script_name

這個變量等于一個以斜線結(jié)尾的請求URI加上fastcgi_index給定的參數(shù)??梢杂眠@個變量代替SCRIPT_FILENAME 和PATH_TRANSLATED,以確定php腳本的名稱。
如下例,請求"/info/":
 fastcgi_index  index.php;  fastcgi_param  SCRIPT_FILENAME  /home/www/scripts/php$fastcgi_script_name;
SCRIPT_FILENAME等于"/home/www/scripts/php/info/index.php"。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    在线日韩欧美国产自拍| 欧美在线观看视频免费不卡| 我想看亚洲一级黄色录像| 久久国产成人精品国产成人亚洲| 亚洲精品国产精品日韩| 午夜激情视频一区二区| 久久精品亚洲精品一区| 少妇淫真视频一区二区| 欧美日韩一区二区综合| 中文字幕日韩精品人一妻| 国产精品内射婷婷一级二级| 好东西一起分享老鸭窝| 亚洲精品国产精品日韩| 青青草草免费在线视频| 日韩和欧美的一区二区三区| 丰满人妻一二区二区三区av| 久久一区内射污污内射亚洲| 欧美极品欧美精品欧美| 极品少妇一区二区三区精品视频 | 日本少妇三级三级三级| 嫩草国产福利视频一区二区| 久久99这里只精品热在线| 欧美一区二区三区五月婷婷| 天堂热东京热男人天堂| 99热在线播放免费观看| 一区二区欧美另类稀缺| 国产高清在线不卡一区| 欧美日韩亚洲综合国产人| 国产一区二区三区丝袜不卡| 欧美日本道一区二区三区| 午夜久久久精品国产精品| 日韩特级黄片免费观看| 国产三级黄片在线免费看| 国产性情片一区二区三区| 精品熟女少妇av免费久久野外| 国产超薄黑色肉色丝袜| 中文字幕乱码免费人妻av| 日韩精品综合免费视频| 不卡在线播放一区二区三区| 女人高潮被爽到呻吟在线观看| 亚洲深夜精品福利一区|