亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > PHP > 正文

PHP連接Nginx服務器并解析Nginx日志的方法

2024-05-04 23:38:46
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了PHP連接Nginx服務器并解析Nginx日志的方法,PHP+Nginx也是目前一種相當流行的服務器搭建方案,需要的朋友可以參考下

php與nginx整合

PHP-FPM也是一個第三方的FastCGI進程管理器,它是作為PHP的一個補丁來開發的,在安裝的時候也需要和PHP源碼一起編譯,也就是說PHP-FPM被編譯到PHP內核中,因此在處理性能方面更加優秀;同時它在處理高并發方面也比spawn-fcgi引擎好很多,因此,推薦Nginx+PHP/PHP-FPM這個組合對PHP進行解析。

FastCGI 的主要優點是把動態語言和HTTP Server分離開來,所以Nginx與PHP/PHP-FPM經常被部署在不同的服務器上,以分擔前端Nginx服務器的壓力,使Nginx專一處理靜態請求和轉發動態請求,而PHP/PHP-FPM服務器專一解析PHP動態請求

#fastcgi

FastCGI是一個可伸縮地、高速地在HTTP server和動態腳本語言間通信的接口。多數流行的HTTP server都支持FastCGI,包括Apache、Nginx和lighttpd等,同時,FastCGI也被許多腳本語言所支持,其中就有PHP。

FastCGI是從CGI發展改進而來的。傳統CGI接口方式的主要缺點是性能很差,因為每次HTTP服務器遇到動態程序時都需要重新啟動腳本解析器來執行解析,然后結果被返回給HTTP服務器。這在處理高并發訪問時,幾乎是不可用的。另外傳統的CGI接口方式安全性也很差,現在已經很少被使用了。

FastCGI接口方式采用C/S結構,可以將HTTP服務器和腳本解析服務器分開,同時在腳本解析服務器上啟動一個或者多個腳本解析守護進程。當HTTP服務器每次遇到動態程序時,可以將其直接交付給FastCGI進程來執行,然后將得到的結果返回給瀏覽器。這種方式可以讓HTTP服務器專一地處理靜態請求或者將動態腳本服務器的結果返回給客戶端,這在很大程度上提高了整個應用系統的性能。

Nginx+FastCGI運行原理

Nginx不支持對外部程序的直接調用或者解析,所有的外部程序(包括PHP)必須通過FastCGI接口來調用。FastCGI接口在Linux下是socket,(這個socket可以是文件socket,也可以是ip socket)。為了調用CGI程序,還需要一個FastCGI的wrapper(wrapper可以理解為用于啟動另一個程序的程序),這個wrapper綁定在某個固定socket上,如端口或者文件socket。當Nginx將CGI請求發送給這個socket的時候,通過FastCGI接口,wrapper接納到請求,然后派生出一個新的線程,這個線程調用解釋器或者外部程序處理腳本并讀取返回數據;接著,wrapper再將返回的數據通過FastCGI接口,沿著固定的socket傳遞給Nginx;最后,Nginx將返回的數據發送給客戶端,這就是Nginx+FastCGI的整個運作過程。

php與nginx整合

php.ini:php的主配置文件

 

 
  1. [root@server79 php-5.4.12]# cp php.ini-production /usr/local/lnmp/php/etc/php.ini 

拷貝php的啟動腳本

 

 
  1. [root@server79 fpm]# pwd 
  2. /root/php-5.4.12/sapi/fpm 
  3. [root@server79 fpm]# cp init.d.php-fpm /etc/init.d/php-fpm 

給啟動腳本加可執行權限

 

 
  1. [root@server79 fpm]# chmod +x /etc/init.d/php-fpm 
  2. [root@server79 ~]# vim /usr/local/lnmp/php/etc/php.ini 
  3. cgi.fix_pathinfo=0 
  4. date.timezone = /Asia/Shanghai 
  5. [root@server79 ~]# cp /usr/local/lnmp/php/etc/php-fpm.conf.default /usr/local/lnmp/php/etc/php-fpm.conf 
  6. [root@server79 etc]# vim php-fpm.conf 

打開注釋pid = run/php-fpm.pid

php-fpm.conf文件參數解析

PHP的全局配置文件是php.ini,在上面的步驟中,已經將此文件復制到了/usr/local/lnmp/php/etc/php.ini下。可以根據每個應用需求的不同,對php.ini進行相應的配置。

下面重點介紹PHP-FPM引擎的配置文件。

根據上面指定的安裝路徑,PHP-FPM的默認配置文件為/usr/local/lnmp/php/etc/php-fpm.conf。

php-fpm.conf是一個XML格式的純文本文件,其內容很容易看明白。這里重點介紹幾個重要的配置標簽:

標簽listen_address是配置fastcgi進程監聽的IP地址以及端口,默認是127.0.0.1:9000。

 

 
  1. listen = 127.0.0.1:9000 

標簽user和group用于設置運行FastCGI進程的用戶和用戶組。需要注意的是,這里指定的用戶和用戶組要和Nginx配置文件中指定的用戶和用戶組一致。

 

 
  1. user = nginx 
  2. group = nginx 

標簽max_children用于設置FastCGI的進程數。根據官方建議,小于2GB內存的服務器,可以只開啟64個進程,4GB以上內存的服務器可以開啟200個進程。

 

  1. <value name="max_children">5</value> 

標簽request_terminate_timeout用于設置FastCGI執行腳本的時間。默認是0s,也就是無限執行下去,可以根據情況對其進行修改。

 

 
  1. <value name="request_terminate_timeout">0s</value> 

標簽rlimit_files用于設置PHP-FPM對打開文件描述符的限制,默認值為1024。這個標簽的值必須和Linux內核打開文件數關聯起來,例如要將此值設置為65535,就必須在Linux命令行執行'ulimit -HSn 65536'。

 

 
  1. <value name="rlimit_files">1024</value> 

標簽max_requests指明了每個children最多處理多少個請求后便會被關閉,默認的設置是500。

 

 
  1. pm.max_requests = 500 

標簽allowed_clients用于設置允許訪問FastCGI進程解析器的IP地址。如果不在這里指定IP地址,Nginx轉發過來的PHP解析請求將無法被接受。

 

 
  1. <value name="allowed_clients">127.0.0.1</value> 

5.管理FastCGI進程

在配置完php-fpm后,就可以啟動FastCGI進程了。啟動fastcgi進程有兩種方式:

 

 
  1. /usr/local/php/bin/php-cgi --fpm  

或者

 

 
  1. /usr/local/php/sbin/php-fpm start  

建議采用第二種方式啟動FastCGI進程。

/usr/local/php/sbin/php-fpm還有其他參數,具體為start|stop|quit|restart|reload|logrotate。

每個啟動參數的含義如下:

q start,啟動PHP的FastCGI進程。

q stop,強制終止PHP的FastCGI進程。

q quit,平滑終止PHP的FastCGI進程。

q restart,重啟PHP的FastCGI進程。

q reload,重新加載PHP的php.ini。

q logrotate,重新啟用log文件。

reload是個很重要的參數,它可以在PHP的FastCGI進程不中斷的情況下重新加載改動過的php.ini,因此通過php-fpm可以平滑變更FastCGI模式下的PHP設置。

 

 
  1. [root@server79 etc]# /etc/init.d/php-fpm start 

配置nginx的主配置文件,打開與php的接口

 

 
  1. [root@server79 conf]# pwd 
  2. /usr/local/lnmp/nginx/conf 
  3. [root@server79 conf]# vim nginx.conf 
  4. user nginx; 
  5. # 
  6. location ~ /.php$ { 
  7. root html;  
  8. fastcgi_pass 127.0.0.1:9000; //本地9000端口 
  9. fastcgi_index index.php; 
  10. # fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name; 
  11. include fastcgi.conf; 
  12. [root@server79 conf]# nginx -t^C 
  13. [root@server79 conf]# nginx -s reload^C 
  14. [root@server79 html]# pwd 
  15. /usr/local/lnmp/nginx/html 
  16. [root@server79 html]# cat index.php 
  17. <?php 
  18. phpinfo()?> 

測試:瀏覽器中輸入192.168.0.179/index.php,出現php頁面

PHP解析Nginx日志 nginx日志格式

access_log日志格式

 

 
  1. log_format main '$server_name$remote_addr$remote_user[$time_local]"$request"'  
  2. '$status$body_bytes_sent"$http_referer"'  
  3. '"$http_user_agent""$http_x_forwarded_for"';  

日志參數

server_name : 虛擬主機的主機名稱

remote_addr : 遠程客戶端的ip地址

remote_user : 遠程客戶端用戶名稱

time_local : 訪問的時間與時區

status : 記錄請求返回的http狀態碼

body_bytes_sent : 發送給客戶端的文件主體內容的大小

http_referer : 從哪個頁面鏈接訪問過來

http_user_agent : 客戶端瀏覽器信息

http_x_forwarded_for : 客戶端的真實ip

日志分割符

使用特殊的不可打印字符^A(ctrl+v,ctrl+a)作為日志分割符

根據關鍵字過濾文件內容

需求

根據http的請求里是否有“weibo”這個關鍵字提取文件的內容

php代碼

 

 
  1. /**  
  2. * Description:按行讀取文件內容進行過濾匹配  
  3.  
  4. * @return array  
  5. */ 
  6. function readFileContent ($filename)  
  7. {  
  8. $weibo_content = array();  
  9. $fh = @fopen($filename, 'r');  
  10.  
  11. if ($fh) {  
  12. while (! feof($fh)) {  
  13. $row = fgets($fh, 4096);  
  14. $row_arr = explode("", $row);  
  15. if (isset($row_arr[3]) && preg_match('/weibo/', $row_arr[3])) {  
  16. $weibo_content[] = $row_arr;  
  17. }  
  18. }  
  19. }  
  20. fclose($fh);  
  21.  
  22. return $weibo_content;  
  23. }  

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
97色在线播放视频| 国产视频久久久久久久| 亚洲视频国产视频| 欧美高清在线播放| 欧美激情视频免费观看| 日韩黄色高清视频| 亚洲国产天堂网精品网站| 欧美一级高清免费播放| 国产日韩欧美黄色| 日韩一二三在线视频播| 久久99精品国产99久久6尤物| 国产原创欧美精品| 亚洲国产中文字幕久久网| 国产亚洲精品美女久久久| 亚洲va码欧洲m码| 91天堂在线观看| 亚洲精品国产免费| 国产成人综合精品在线| 中文字幕亚洲无线码a| 成人午夜小视频| 日韩精品中文字幕久久臀| 亚洲国产小视频在线观看| 自拍偷拍亚洲区| 日日骚av一区| 欧美性色xo影院| 亚洲国产精品福利| 日韩在线视频导航| 欧美高清视频在线观看| 国产成人高清激情视频在线观看| 亚洲欧美中文字幕在线一区| 日韩亚洲精品视频| 久久国产精品久久久久久久久久| 日韩欧美在线一区| 欧美丰满片xxx777| 精品在线小视频| 久久久久久久国产精品| 91日韩在线视频| 夜夜躁日日躁狠狠久久88av| 亚洲精品456在线播放狼人| 日韩精品免费在线观看| 日韩av男人的天堂| 国产在线日韩在线| 日韩精品视频免费在线观看| 91高潮在线观看| 国产日韩在线视频| 色综合导航网站| 最近免费中文字幕视频2019| 日韩一级黄色av| 国产99久久精品一区二区永久免费| 一区二区三区视频在线| 国产精品网站入口| 青青精品视频播放| 亚洲国产天堂网精品网站| 91精品在线国产| 日本免费久久高清视频| 亚洲精品综合久久中文字幕| 亚洲最大福利视频| 国产精品久久久久久久午夜| 亚洲精品美女在线观看播放| 97国产精品视频人人做人人爱| 久久国产精品99国产精| 日韩成人av网址| 成人黄色片在线| 欧美专区在线播放| 欧美一区二区色| 欧美激情国内偷拍| 在线视频中文亚洲| 国外成人在线直播| 精品久久久免费| 国产精品1区2区在线观看| 欧美一区深夜视频| 日韩日本欧美亚洲| 久久这里只有精品视频首页| 亚洲国产精品99久久| 91久久久久久国产精品| 亚洲人成在线一二| 国产精品久久久久久久电影| 91伊人影院在线播放| 成人免费网视频| 成人性生交xxxxx网站| 中文字幕亚洲欧美日韩在线不卡| 亚洲男人天堂网| 4p变态网欧美系列| 91亚洲精品视频| 亚洲天堂久久av| 中文在线资源观看视频网站免费不卡| 国产欧美精品一区二区三区介绍| 久久久精品久久久| 日韩av成人在线观看| 日韩国产精品一区| 精品国产网站地址| 91精品国产乱码久久久久久久久| 精品视频在线导航| 一区二区欧美激情| 日本成人黄色片| 欧美风情在线观看| 亚洲综合色激情五月| 久久午夜a级毛片| 成人网页在线免费观看| 国产精品吹潮在线观看| 北条麻妃一区二区三区中文字幕| 亚洲激情久久久| 国产在线视频欧美| 91国内在线视频| 日韩视频中文字幕| 亚洲a区在线视频| 38少妇精品导航| 亚洲欧美www| 日韩网站免费观看高清| 成人激情免费在线| 日韩欧美国产一区二区| 亚洲三级黄色在线观看| 欧美激情一级欧美精品| 日韩av中文在线| 黑人巨大精品欧美一区二区| 欧美性极品少妇精品网站| 在线观看中文字幕亚洲| 成年人精品视频| 欧美理论电影在线播放| 欧美理论片在线观看| 亚洲黄页网在线观看| 亚洲精品黄网在线观看| 欧美高清在线播放| 久久久噜噜噜久噜久久| 国产精品男人的天堂| 九九九久久国产免费| 国产精品扒开腿做爽爽爽的视频| 久久视频在线观看免费| 国产专区精品视频| 亚洲一级一级97网| 中文字幕自拍vr一区二区三区| 日本中文字幕久久看| 高清视频欧美一级| 国产一区在线播放| 久久精品国产清自在天天线| 亚洲精品永久免费精品| 中国china体内裑精亚洲片| wwwwwwww亚洲| 亚洲一区二区三区乱码aⅴ蜜桃女| 亚洲国产又黄又爽女人高潮的| 亚洲成人精品在线| 亚洲天堂男人天堂女人天堂| 久久久久国产精品免费| 欧亚精品中文字幕| 亚洲999一在线观看www| 精品国内产的精品视频在线观看| 国产精品va在线播放我和闺蜜| 亚洲黄色有码视频| 亚洲第一福利网| 日韩在线观看成人| 国产亚洲免费的视频看| 26uuu亚洲国产精品| 91久久精品国产| 丁香五六月婷婷久久激情| 成人妇女淫片aaaa视频| 中文字幕日韩精品在线观看| 国产精选久久久久久| 日韩中文字幕欧美| 午夜精品一区二区三区视频免费看| 亚洲最新av在线网站| 91亚洲精品久久久久久久久久久久| 欧美久久久精品| 91亚洲国产成人精品性色| 国产日韩精品一区二区|