一般に、厳密な構成要件はありません。言い換えれば、私は tcp モードを使用して各構成パラメーターの意味を詳しく調べていません。 fastcgi プロセスに接続するため、tcp 監視のアドレスとポートを変更しました。ここでは詳しく説明しません。独自の設定にするには、公式ドキュメントを参照してください。 php5-fpm を再起動します。これは、apache とは異なる php 言語を解析します (apache には、php 解析用の mod_php モジュールがあります)。nginx は、クライアントの php リクエストをバックグラウンドの php5-fpm プロセス マネージャーに渡します。 -fpm には、php 関数を解析する機能があります。
#epoll の I/O モデルを使用します
epoll を使用します;
#作業指示プロセスの同時接続数、同時接続の合計数 = worker_connections * work_processes
worker_connections 2048;
#multi_accept は、Nginx で新しい接続通知を受け取ります。次に、accept() を呼び出して、できるだけ多くの接続を受け入れます multi_accept on;
}
http {
include /etc/nginx/mime.タイプ;
default_type application/octet-stream; charset utf-8;
server_names_hash_bucket_size 12 8 ; En Client_header_buffer_size 2K;
Large_client_header_buffers 44K; #nginx 経由でファイルをアップロードしますmax_body_size 8M
#$ Remote_addr: レコードipアドレス; $remote_user: リモートクライアントのユーザー名を記録します。 $request: リクエストのURLとhttpプロトコルを記録します。 $body_bytes_sent: ファイルのメインコンテンツのサイズを記録します。クライアントに送信; $http_referer: ジャンプリンク; $http_x_forwarded_for: 顧客の実際の IP アドレス log_format main '$server_name $remote_addr $remote_user[$time_local] "$request" '$status $body_bytes_sent "$http_referer" '"$http_user_agent " "$http_x_forwarded_for"'; access_log /var/log /nginx/access.log main;
error_log /var/log/nginx/error.log;
sendfile on;
tcp_nopush on;
#keepalive タイムアウト
keepalive_timeout 60;
open_file_cache max =204800 inactive=20s ;
open_file_cache_min_uses 1;
open_file_cache_valid 30s;
tcp_nolay オン; gzip オン;
include /etc/nginx/conf.d/*.conf;
}
ログ形式は、印刷不可能な記号 ctrl+v && ctrl+a で区切られています
nginx 仮想ホスト構成ファイル
コードをコピー コードは次のとおりです:
upstream haolianxi_php {
server 127.0. 0.1:9444;
}
server {
listen 192.168.1.137:7777;
access_log /var/log/nginx/haolianxi/haolianxi.access.log main;
error_log /var/log/nginx/haolianxi/haolianxi.error .log;
#ユニバーサルマッチング
location / {
root /srv/www/php/;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
access_log /var/log/nginx/haolianxi/location.default. access.log main;
error_log /var/log/nginx/haolianxi/location.default.error.log;
192.168.1.0/24 を許可;
すべて拒否;
}
#正規表現一致
#php をプロキシphp-fpm
の場所へのスクリプト ~ .php$ {
root /srv/www/php/;
include /etc/nginx/fastcgi_params;
fastcgi_pass haolianxi_php; # 上記で決定されたアップストリーム
fastcgi_indexindex.php;
}
# PHP-FPMステータスモニターcolation場所= /phpfpm_status {fastcgi_pass 127.0.0.1:9444; fastcgi_index index.php;
}
## 圧縮
# src: http://www.ruby-forum.com/topic/141251
# src: http://wiki.brightbox.co.uk/docs:nginx
gzip on;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_proxied any;
gzip_min_length 1100;
gzip_buffers 16 8k;
gzip_types text/plain text/css application/x-java script text/xml application/xml application/xml+rss text/javascript;
# IE 6 の一部のバージョンでは、一部の MIME タイプで圧縮を適切に処理できないため、それらを無効にしてください
gzip_disable "MSIE [1-6].(?!.*SV1)";
# 可変ヘッダーを設定しますダウンストリームプロキシは、キャッシュされたGzippedコンテンツをie6
#
コピーに送信しませんcodeコードは次のとおりです。 document_root、php5-fpm は、実行する必要がある php スクリプトの絶対パスを見つけることができません
nginx を再起動します
コードをコピーします
コードは次のとおりです:
sudo /etc/init.d/nginx restart
fastcgi_finish_request() 関数をテストします
コードをコピーします コードは次のとおりです:
php
echo "OK";
fastcgi_finish_request() /* 応答が完了しました、接続を閉じます*/
sleep(5);
file_put_contents("/tmp/fastcgi.log", "hello",FILE_APPEND);
sleep(5 );
file_put_contents("/tmp/fastcgi.log", "world",FILE_APPEND) );
?>
説明:
最も一般的な言い方では、fastcgi_finish_request() は事前にクライアントを閉じることができます。接続してクライアントに返す必要があるデータを返しますが、その後ビジネス ロジックをブランチします。関数はバックグラウンドで実行され続けます。
php5-fpm 日別ログ分割スクリプト
コードをコピーします コードは次のとおりです:
#!/bin/bash -
#1.php5-fpm ログ保存パス
php5_fpm_logs_path="/var/log/php5-fpm/"
category_array=("access" "error")
#2 .php5-fpm ログ名サフィックス
postfix=`date -d '-1 days' +%Y%m%d`".log"
#3.php5-fpm ログ切断
${category_array のカテゴリ[*]}
do
if [ -e $php5_fpm_logs_path/php5-fpm.$category.log ]
then
mv $php5_fpm_logs_path/php5-fpm.$category.log
$php5_fpm_logs_path/php5-fpm.$category.$ postfix
fi
done
#4. php5-fpm プロセス番号を見つけて、新しいログ ファイルを生成させます
php5fpm_pid=`ps -aux |grep -E 'php-fpm: マスター プロセス'|grep -v ' grep '|awk '{print $2}'`
#USR1:ログ ファイルを再度開き、nginx ログ ファイルを更新します
kill -USR1 $php5fpm_pid
http://www.bkjia.com/PHPjc/327268.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/327268.html技術記事 Ppa install php-fpm ツールキットをインストールし、次のようにコードをコピーします: $ sudo apt-get install python-software-properties 次のようにコードをコピーします: $ sudo add-apt-repository ppa:.. .