web-dev-qa-db-ja.com

ネットワークがダウンしたときにウェブサイトのメンテナンスページを表示する方法

ASP.NET Webサイトを内部(DMZ内)でホストします。ネットワークのメンテナンスなどを行っているときに、サイトにメンテナンスページを表示させたいのですが、ネットワークがダウンしているため、ホスティングサーバーがオフになっています。 DNSエントリをホストしない(外部で処理される)ため、メンテナンスページを外部でホストすることはできますが、メンテナンスのためにDNS変更をプッシュするには時間がかかりすぎます。ここでネットワークの停止を処理するために、外部ユーザーに私たちがまだ存在していることを示すために、どのようなソリューションを採用できますか?何があなたのために働き、あなたは何を試しましたか?

5
SteveBering

ライブサイトを指すオフサイトリバースプロキシは、バックエンドサイトが利用できない場合にデフォルトページを表示する可能性があります。

3
tomdeb

私はこの正確な設定にhaproxyを使用しています。外部のLinuxVPSでホストされています。プロキシシステムが実際のWebサーバーでヘルスチェックページを正常に取得できる場合、それがクライアントに提供されます。ヘルスチェックが失敗すると、プロキシVPSにローカルなApacheサーバーから静的ページを提供します。

これが私のhaproxy.confです:

global
maxconn 4096
daemon
defaults
mode http
clitimeout 60000
srvtimeout 30000
contimeout 4000
option httpclose # Disable Keepalive

listen FarmName 10.9.8.7:80
        mode http
        stats enable
        stats auth admin:Fa2a6eSe
        balance roundrobin
        cookie haCookie insert nocache
        option httpclose
        option forwardfor
        option httpchk HEAD /healthcheck HTTP/1.0
        server active 1.2.3.4:5080 check
        server static-backup 127.0.0.1:80 check inter 500 rise 1 fall 2 backup
2
Dave Forgac

IIS単一の静的メンテナンスページを表示する)を使用して単一のワークステーション/サーバーをプロビジョニングしないのはなぜですか?Webサーバーを停止する必要がある場合は、メンテナンスワークステーションを起動し、それに応答することを確認してください。着信Webリクエスト...

単純な静的Webページのおかげで、おそらくラップトップでさえ、中小規模のワークステーションで逃げることができます...必要になるまでオフラインになっている仮想マシンで逃げることさえできます...

他のすべてが必要以上に仕事のようです...

0
Dscoduc

ASP.NET Webアプリケーションサイトがあり、サイトのルートに「app_offline.htm」という名前のテキストファイルを配置すると、そのWebサイトへのすべての要求はそのapp_offline.htmファイルにリダイレクトされます。 。

基本的に、ASP.NETサイト全体をオフラインにする必要がある場合は、そのファイルにニースメッセージを配置できます。次に、そのWebサイト内のURLへの新しい要求はすべてそのファイルにリダイレクトされ、サイトのメンテナンスやアップグレードなどを行うことができます。ただし、実際にはリダイレクトではありません。 ASP.NETは基本的にサイトをシャットダウンし、サーバーからアンロードして、そのサイトへの要求の処理を停止します。つまり、app_offline.htmファイルを削除するまで、通常どおり処理が続行され、ASP.NETサイトが読み込まれ、要求の処理が再開されます。

それが役に立てば幸い。乾杯!

0
Madhav

これが最適なソリューションかどうかはわかりません。ソリューションが複雑になるためです。Webサーバーの前(ネットワーク外)にリバースプロキシ(squid、MS ISAなど)を配置して、これらのサーバーを介してリクエストを実行します。

したがって、ダウンタイムを計画している場合は、いくつかのルールを変更して、静的な"申し訳ありませんが、オフラインです"メッセージを表示する必要があります。

0
splattne

DNSフェイルオーバーソリューションを設定することもできますが(DNS Made Easyがこのオプションを提供します)、TTL設定によっては、より長い停止を除いて、人々が更新を取得しない可能性があります。もちろん、メンテナンスページをホストするための外部サーバーも必要になります。

瞬時フェイルオーバーの最善の策は、静的Webページが配置された小さなホストサーバーをどこかで購入し、ツール(Linuxのheartbeatなど)を使用してメインサーバーが利用できないことを監視することです。セカンダリサーバーにIPアドレスを引き継がせます。

0
Brent