不通過 web server 獲取 php-fpm 運行狀態
php-fpm 可以配置一個 pm.status_path ,如 `/status`,然后通過 web server 訪問這個地址來獲取運行狀態。但這樣會侵入 web server 的配置,在一個 web server 后端有多個 php-fpm 的適合也不方便分別監控每一個后端的狀態,為了安全,還要配置訪問控制。
好在有個現成的工具 cgi-fcgi,可以把 fcgi 請求包裝成 cgi 方式,這樣就可以直接在命令行中調用 fastcgi。
cgi-fcgi 在 redhat/centos 中可以用 `yum install fcgi` 安裝,在 ubuntu 中可以用 `apt-get install libfcgi-dev` 安裝。
用以下方式就能獲取 php-fpm 的狀態了。
path=/status export REQUEST_METHOD=GET export SCRIPT_NAME="$path" export SCRIPT_FILENAME="$path" export QUERY_STRING='' # export QUERY_STRING='full' # export QUERY_STRING='json' # export QUERY_STRING='full&xml' addr=/var/run/php-fpm.socket # addr=127.0.0.1:9000 cgi-fcgi -bind -connect "$addr"
QUERY_STRING 設置為 full 會顯示每一個 worker 進程的狀態。添加 json、xml、html 可以以不同格式顯示結果。
來自: http://xiezhenye.com/2016/01/不通過-web-server-獲取-php-fpm-運行狀態.html
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!