Nginx 之 fastcgi配置

1? 概述

nginx代理通過ngx_http_fastcgi_module這個(gè)模塊,將收到php程序的請(qǐng)求后就轉(zhuǎn)發(fā)到后臺(tái)FastCGI服務(wù)器處理萌踱,這里nginx可以把php-fpm服務(wù)運(yùn)行在同一機(jī)器上谋国,也可以將nginx和php-fpm分離在兩臺(tái)機(jī)器上载矿。但是,nginx不支持php模塊方式,只能是php-fpm模式。

本文將介紹ngx_http_fastcgi_module模塊的相關(guān)命令和配置闷盔。

2? fastcgi配置

.1弯洗、fastcgi_pass

fastcgi_pass? address;

address為后端的fastcgi? server的地址

可用位置:location,if in location

.2、fastcgi_index

fastcgi_index? name;

fastcgi默認(rèn)的主頁資源

示例:fastcgi_index? index.php;

.3逢勾、fastcgi_param

fastcgi_param? parameter value [if_not_empty];

設(shè)置傳遞給FastCGI服務(wù)器的參數(shù)值牡整,可以是文本,變量或組合

.示例1:將php后綴的文件調(diào)度到運(yùn)行php-fpm的服務(wù)器

.1)在后端服務(wù)器先配置fpm server和mariadb-server

yum install php-fpm mysql-server;

fastcgi服務(wù)器上配置

mv? /etc/php-fpm.conf /etc/php-fpm.conf.bak

cp /usr/share/doc/php-fpm-5.3.3/php-fpm.conf.default? /etc/php-fpm.conf

更改php的配置文件的監(jiān)聽端口和允許連接的ip

vim? /etc/php-fpm.conf

listen 9000

listen.allowed_clients = 127.0.0.1,172.18.50.73

service php-fpmre? start

.2)在前端nginx服務(wù)上做以下配置:

注意溺拱,以下的/app/php是指在安裝php-fpm主機(jī)上存放php文件的路徑逃贝,這里就是在172.18.50.65這臺(tái)主機(jī)下的路徑/app/php下存放的php后綴的腳本,后端fpm服務(wù)器IP:9000;

方法一

vim? /etc/nginx/conf.d/server.conf

location ~ \.php$ {

fastcgi_pass 172.18.50.65:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME/app/php$fastcgi_script_name;

include fastcgi_params;

}

方法二

fastcgi_params ?fastcgi參數(shù)在子配置文件fastcgi.conf里定義了,所以這里有另一種配置方法迫摔,直接更改fastcgi.conf這個(gè)文件

vim /etc/nginx/fastcgi.conf

fastcgi_param?SCRIPT_FILENAME??? /app/php$fastcgi_script_name;

vim? /etc/nginx/conf.d/server.conf

location ~ \.php$ {

fastcgi_pass 172.18.50.65:9000;

fastcgi_index index.php;

includefastcgi.conf;

}

3)測(cè)試

重啟nginx服務(wù),當(dāng)訪問172.18.50.73下的php文件都會(huì)被調(diào)度到172.18.50.65去處理沐扳,且對(duì)應(yīng)的php文件的目錄是172.18.50.65下的/app/php.

在瀏覽器下輸入http://172.18.50.73/index.php,通過命令tcpdump -i ?eth1 -nn port 9000在65主機(jī)上查看訪問情況

這里附上172.18.50.65下的/app/php/index.php的測(cè)試腳本。由于以下的腳本中句占,有測(cè)試服務(wù)器的連接沪摄,因此php-fpm服務(wù)器端要安裝php-mysql,才能連接mysql數(shù)據(jù)庫。

yum? install php-mysql

腳本如下

<?php

echo?"I am index.php in? /app/phpwihtin 65";

$mysqli=newmysqli("172.18.50.65","wpadmin","Pass123456");

if(mysqli_connect_errno()){

echo "it is falilure!";

$mysqli=null;

exit;

}

echo "nice job,it isconnected...";

$mysqli->close();

phpinfo();

?>

.示例2:通過/pm_status和/ping來獲取fpm server狀態(tài)信息

可以通過纱烘?格式來看對(duì)應(yīng)不同格式的顯示杨拐。也可以是?full

php-fpm服務(wù)器要開啟如下兩個(gè)配置擂啥,注意哄陶,這里斜杠后的status和ping是可以自定義,在nginx上location上配置匹配的選項(xiàng)即可哺壶。

pm.status_path = /status

ping.path = /ping

nginx調(diào)度器端配置如下:

location ~* ^/(status|ping)$ {

include fastcgi_params;

fastcgi_pass 172.18.50.65:9000;

fastcgi_param SCRIPT_FILENAME $fastcgi_script_name;

}

.4屋吨、定義fastcgi的緩存

這個(gè)需要在http配置段里定義

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];

path緩存位置為磁盤上的文件系統(tǒng)

max_size=size

磁盤path路徑中用于緩存數(shù)據(jù)的緩存空間上限

levels=levels:緩存目錄的層級(jí)數(shù)量,以及每一級(jí)的目錄數(shù)量

levels=ONE:TWO:THREE

示例:leves=1:2:2

keys_zone=name:size

k/v映射的內(nèi)存空間的名稱及大小

inactive=time

非活動(dòng)時(shí)長

.5山宾、fastcgi_cache? zone | off;

調(diào)用指定的緩存空間來緩存數(shù)據(jù)

可用位置:http,server, location

.6离赫、fastcgi_cache_key

fastcgi_cache_key? string;

定義用作緩存項(xiàng)的key的字符串

示例:fastcgi_cache_key? $request_rui;

.7、fastcgi_cache_methods

fastcgi_cache_methods GET| HEAD | POST ...;

為哪些請(qǐng)求方法使用緩存

.8塌碌、fastcgi_cache_min_uses

fastcgi_cache_min_uses? number;

緩存空間中的緩存項(xiàng)在inactive定義的非活動(dòng)時(shí)間內(nèi)至少要被訪問到此處所指定的次數(shù)方可被認(rèn)作活動(dòng)項(xiàng)

.9、fastcgi_keep_conn

fastcgi_keep_conn on | off;

收到后端服務(wù)器響應(yīng)后旬盯,fastcgi服務(wù)器是否關(guān)閉連接台妆,建議啟用長連接

.10、fastcgi_cache_valid

fastcgi_cache_valid [code...] time;

不同的響應(yīng)碼各自的緩存時(shí)長

3配置fastcgi緩存

#http配置段里定義緩存

http {

fastcgi_cache_path/var/cache/nginx/fcgi_cache levels=1:2:2 keys_zone=sunny_fcgicache:20m inactive=120s;

...

}

#server端里調(diào)用緩存

server {

location ~* \.php$ {

...

fastcgi_cache sunny_fcgicache;

fastcgi_cache_key $request_uri;

fastcgi_cache_valid 200 302 10m;

fastcgi_cache_valid 301 1h;

fastcgi_cache_valid any 1m;...

}

}

在瀏覽器里打開http://172.18.50.73/index.php第二次打開的時(shí)候胖翰,明顯比第一次快接剩,因?yàn)榈谝淮未蜷_的時(shí)候,還沒有產(chǎn)生緩存

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末萨咳,一起剝皮案震驚了整個(gè)濱河市懊缺,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖鹃两,帶你破解...
    沈念sama閱讀 222,183評(píng)論 6 516
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件遗座,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡俊扳,警方通過查閱死者的電腦和手機(jī)途蒋,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,850評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來馋记,“玉大人号坡,你說我怎么就攤上這事√菪眩” “怎么了宽堆?”我有些...
    開封第一講書人閱讀 168,766評(píng)論 0 361
  • 文/不壞的土叔 我叫張陵,是天一觀的道長茸习。 經(jīng)常有香客問我畜隶,道長,這世上最難降的妖魔是什么逮光? 我笑而不...
    開封第一講書人閱讀 59,854評(píng)論 1 299
  • 正文 為了忘掉前任代箭,我火速辦了婚禮,結(jié)果婚禮上涕刚,老公的妹妹穿的比我還像新娘嗡综。我一直安慰自己,他們只是感情好杜漠,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,871評(píng)論 6 398
  • 文/花漫 我一把揭開白布极景。 她就那樣靜靜地躺著,像睡著了一般驾茴。 火紅的嫁衣襯著肌膚如雪盼樟。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,457評(píng)論 1 311
  • 那天锈至,我揣著相機(jī)與錄音晨缴,去河邊找鬼。 笑死峡捡,一個(gè)胖子當(dāng)著我的面吹牛击碗,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播们拙,決...
    沈念sama閱讀 40,999評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼稍途,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了砚婆?” 一聲冷哼從身側(cè)響起械拍,我...
    開封第一講書人閱讀 39,914評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后坷虑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體甲馋,經(jīng)...
    沈念sama閱讀 46,465評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,543評(píng)論 3 342
  • 正文 我和宋清朗相戀三年猖吴,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了摔刁。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,675評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡海蔽,死狀恐怖共屈,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情党窜,我是刑警寧澤拗引,帶...
    沈念sama閱讀 36,354評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站幌衣,受9級(jí)特大地震影響矾削,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜豁护,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,029評(píng)論 3 335
  • 文/蒙蒙 一哼凯、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧楚里,春花似錦断部、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,514評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至达址,卻和暖如春蔑祟,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背沉唠。 一陣腳步聲響...
    開封第一講書人閱讀 33,616評(píng)論 1 274
  • 我被黑心中介騙來泰國打工疆虚, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人满葛。 一個(gè)月前我還...
    沈念sama閱讀 49,091評(píng)論 3 378
  • 正文 我出身青樓径簿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親纱扭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,685評(píng)論 2 360

推薦閱讀更多精彩內(nèi)容

  • Nginx簡介 解決基于進(jìn)程模型產(chǎn)生的C10K問題,請(qǐng)求時(shí)即使無狀態(tài)連接如web服務(wù)都無法達(dá)到并發(fā)響應(yīng)量級(jí)一萬的現(xiàn)...
    魏鎮(zhèn)坪閱讀 2,007評(píng)論 0 9
  • 1. Nginx的模塊與工作原理 Nginx由內(nèi)核和模塊組成儡遮,其中乳蛾,內(nèi)核的設(shè)計(jì)非常微小和簡潔,完成的工作也非常簡單...
    rosekissyou閱讀 10,222評(píng)論 5 124
  • I/O模型Nginx介紹Nginx的安裝和目錄結(jié)構(gòu)Nginx的配置Nginx的編譯安裝 一、I/O模型 (一)I/...
    哈嘍別樣閱讀 897評(píng)論 0 4
  • 一肃叶、MemCache簡介 session MemCache是一個(gè)自由蹂随、源碼開放、高性能因惭、分布式的分布式內(nèi)存對(duì)象緩存...
    李偉銘MIng閱讀 3,821評(píng)論 2 13
  • 上一篇《WEB請(qǐng)求處理一:瀏覽器請(qǐng)求發(fā)起處理》岳锁,我們講述了瀏覽器端請(qǐng)求發(fā)起過程,通過DNS域名解析服務(wù)器IP蹦魔,并建...
    七寸知架構(gòu)閱讀 81,041評(píng)論 21 356