
いくつかのチュートリアルに従って、PHP FPM を使用するように Apache を設定しました。ただし、行のどの部分が機能しているのか理解できずSetHandler
、いくつかの実験に基づくと冗長であるように見えます。次の行があります:
SetHandler "proxy:unix:/run/php/php7.3-fpm.sock|fcgi://localhost"
これは、が|fcgi://localhost
存在するかどうかに関係なく機能します。
Pleskの設定など、さまざまな場所でfcgi://localhost
、fcgi://127.0.0.1:9000
の目的は何ですか|fcgi://localhost
? 冗長ですか? 削除できますか?
sock と fcgi を区切るパイプはsock|fcgi
「または」として解釈されますか? つまり、UNIX ソケットが存在しない場合は、代わりに TCP 接続を使用するということですか?
FPM プール構成で、listen ディレクティブをホストとポートに置き換えてみたり、ポートだけに置き換えてみたりしましたが、うまくいかないようです。PHP FPM を UNIX ソケットではなく TCP 経由で利用できるように構成するにはどうすればよいでしょうか。現時点ではこれを実行する理由はありません。学習のためだけです。
最後に。これはこの質問をするのに適した「スタック」サイトでしょうか?
編集して見つけたちょっとしたドキュメントApache から。例のセクションの最後の例では、|fcgi://something
リバース プロキシ要求を強制するコンテキストで を使用することについて説明していますが、これはよくわかりません。
答え1
ドキュメントには、必須ではないにもかかわらず、なぜそれを含める必要があるのかが明確に記載されています。
パフォーマンス上の理由から、同じバックエンドを表すワーカーを定義する必要があります
fcgi://
。この形式の利点は、URI からファイル名への通常のマッピングがサーバーで実行され、ローカル ファイルシステムの結果がバックエンドに渡されることです。FastCGI がこのように構成されている場合、サーバーは最も正確な PATH_INFO を計算できます。