VPN 実行時に間違った PHP バージョンが表示される

VPN 実行時に間違った PHP バージョンが表示される

奇妙な問題があり、詳しく知りたいです。昨日、ホスティング サーバーに新しいサイトを展開していました。その前日に、サーバーを から に切り替えました。奇妙なことに、バージョンはまだ と報告されていました。同僚にサイトに行くようにPHP 5.2.17頼んだところ、正しいバージョンを取得しました。最後に、VPN (この特定のサーバーでは使用していません) をオフにすると、すぐにサーバーが正しい PHP バージョンを実行しているのを確認できました。なぜこのようなことが起こるのか、本当に知りたいです。考えられる唯一のことは、これは実行中の VPN トンネルに関連する何らかのキャッシュの問題であるに違いないということです。PHP 5.4.105.2.17

SSH 経由で Web ルートに新しいファイルを作成すると、ブラウザからファイルにアクセスできず、代わりに 404 ページが表示されます。VPN をオフにするか再起動すると、このエラーは解消されます。

私は使用していますジュノパルスVPN クライアントとして使用します。

私が気づいたもう 1 つの興味深い点は、VPN クライアントを再起動すると、ページに正しいバージョンが再び報告されることです。

答え1

これはプロバイダー + DNS の問題のように思えます。具体的には、プロバイダーが複数のマシン (共有 Web ストレージと定期的に同期されるシステム ストレージがある可能性があります) を所有しており、VPN を使用するか使用しないかによって、PHP が更新される前に、ルーティングを別のマシンに変更したと想定しています。

この兆候は次のとおりです: 1. キャッシュではありません。info.php ファイルの名前を変更することで除外されました。2. ルーティング関連の問題です - VPN がルーティングを変更します。3. 一時的な問題でした。

答え2

基礎となる設定を確認しなければ、問題が何であったかを正確に言うことは困難ですが、提供された情報の一部に基づくと、info2.php ファイルを作成して同じ問題が発生したことを考えると、キャッシュが原因である可能性は低いでしょう。

これは、VPN の使用時に別のサーバーにルーティングされたことを示します。プロバイダーのロード バランサーまたは DNS のいずれかによってルーティングされます (複数のレコード/ラウンドロビンがあるかどうかを確認します)。VPN には、これを引き起こす可能性のあるキャッシュはありません (これがあなたが言いたいことだと思います)。

ロードバランサの設定にはさまざまな種類がありますが、そのうちの1つはIPのハッシュに基づいた設定です。これにより、常に同じシステム(変更がまだ同期されていない可能性があります)に固定されていたのに、別のIPからアクセスすると別のシステムにルーティングされる理由が説明されます。nginxのip_ハッシュこのようなバランサー構成の一例を以下に示します。

クライアント IPv4 アドレスの最初の 3 オクテット、または IPv6 アドレス全体がハッシュ キーとして使用されます。この方法により、同じクライアントからの要求は、このサーバーが利用できない場合を除いて、常に同じサーバーに渡されることが保証されます。

DNSオプションについては、ドメインが複数のAレコードにルーティングされているかどうかを確認してください。次のようなツールが使用できます。mxツールボックス実際の LB が配置されていない場合に別のシステムにルーティングされる理由もこれによって説明できるからです。

これと似た状況として思い浮かぶのは、最近のコード変更で、特定のリクエストに表示されなくなったことです。問題は、ENOM がルート レコードへの CNAME を許可していたことですが、これは RFC1034 ではインターフェイスで許可されていません。ただし、実際には、CNAME の A レコード (この場合は AWS ELB) を検索し、ELB が解決した 2 つの IP に対して 2 つの A レコードを作成しました。その後、数か月後に AWS が ELB がルーティングしていた IP の 1 つを変更したときに、これが反映されなかったため、一部のリクエストが古い ELB IP にルーティングされ、古いキャッシュ コードが表示されました。

関連情報