質問: お世話になります。 WEB3層アーキテクチャの実装について教えてください。 一般的にWEB3層アーキテクチャの構成として下記のように認識しています。 * WEBサーバ - `Apache`, `nginx`等 * APPサーバ - `php-fpm`等 * DBサーバ - `MySQL`等 そこで質問なですが、WEBサーバに`nginx`、APPサーバに`php-fpm`をセットアップし動作できるようにした場合 `nginx`側でPHPの処理を`php-fpm`になげて処理をさせることになると思います。 このとき、WEBサーバとAPPサーバは別々のサーバになりますが URLでアクセスしたときのファイルはどちらの環境にもないと動作しません。 > > 例) > > http://hogehoge.com/index.php にアクセスした場合 > > > [WEBサーバ] > > /var/www/public/index.php > > > [APPサーバ] > > /var/www/public/index.php > > > 上記の両方にファイルがないと404エラーになります > > > セキュリティを考慮した場合、DBの接続情報等はAPPサーバにのみ配置したほうがいいかと思うのですが 両方にファイルを置かないといけないのであれば、負荷分散的な意味はありますがセキュリティ的な意味はあまりないように感じます。 一般的にはそれでも問題ないのでしょうか。 それとも、やはり考え方が間違っているのでしょうか。 以上、宜しくお願い致します。
回答: > > URLでアクセスしたときのファイルはどちらの環境にもないと動作しません。 > > > それは、単に設定が不適切なだけでしょう。実行するPHPファイルをピックアップしてnginx.confにPHP-FPMへ流す旨の設定をすれば、nginx側に実ファイルがなくても動作します。 WordPressや多くのPHPフレームワークでは、直接実行するファイルがごく限られる(理想的にはフロントの`index.php`にすべてを流す)ので、ほぼ問題となりません。