過去数日間にのみ発生したように見える、かなり奇妙な問題があります(過去数日間に変更は加えられていません)。できる限り説明するようにしますが、特定の構成などを投稿する必要がある場合はお知らせください。
CentOS6.3で実行されている2つのバックエンドnginxWebサーバーの前にnginxロードバランサーを設定しています。このサイトはこれまで正常に動作していましたが、最近ホームページにアクセスすると、Webサーバーのデフォルトサイトとして作成したページが表示されます(ホストヘッダーがWebサーバーで認識されていないことを示す個別の通知です)。 )。domain.com/about-usなどのサブページにアクセスすると問題ありませんが、domain.comにアクセスするとデフォルトのサイトが表示されます。この問題は、この特定のサイトのロードバランサーのキャッシュを無効にすることで解決できるようです。キャッシュが使用されなくなるとすぐに、ホームページが正しく表示されます。
ロードバランサーのキャッシュは、/cacheにマップされたRAMドライブに保持されます。使用可能な合計サイズは256Mbです。キャッシュ構成は次のとおりです。
proxy_cache_path /cache levels=1:2 keys_zone=app-cache:30m max_size=126m inactive=10m;
proxy_temp_path /cache/tmp;
proxy_buffer_size 8192;
proxy_max_temp_file_size 1m;
昨夜、キャッシュの合計サイズを減らしました。これは、最近見た別の問題の原因であると感じたためです。キャッシュが最大許容サイズの256Mbまでいっぱいになりましたが、マウントポイントに空きがありませんでした。アップストリームからファイルをバッファリングし、クライアントへの空のファイルの提供を開始するための一時パス。
特定のサイトのエラーログを調べたところ、
2013/01/03 05:47:24 [crit] 22889#0: *352983 pwrite() "/cache/tmp/0000028264" failed (28: No space left on device) while reading upstream, client: 121.58.173.7, server: www.domain.com, request: "GET /images/slider-plus.gif HTTP/1.1", upstream: "http://10.0.100.193:80/images/slider-plus.gif", host: "www.domain.com", referrer: "http://www.domain.com/example-page"
df -hは、/ cacheマウントが現在使用可能なスペースの1%しか使用していないことを示しているため、なぜこのエラーが発生するのかわかりません。
ロードバランサーのnginxバージョンは1.0.11(ソースからビルド)です。Webサーバーのnginxバージョンは1.0.15(epelのパッケージからインストール)です。
私はnginxが更新を必要としていることに気づきました、私はこれを昨日だけ気づきました。これが問題である場合は、更新する計画を進めることができますが、この問題が何であるか、およびどのように解決できるかを確認しておくと便利です。
この状況を診断するために必要な追加情報をお気軽にリクエストしてください。
どうもありがとう
エリック
編集:サーバーの負荷が非常に低く、ロードバランサーがほとんどの時間アイドル状態でトラフィックが少ない場合に、サイトにホームページが表示されないという問題が発生することを付け加えておきます。空のファイルの問題は、サーバーに通常よりもはるかに高い負荷がかかっている場合にのみ発生しました。