サイトでメンテナンスを行い、サーバーを再起動すると、NGINXが502の不正なゲートウェイエラーを返すことがあります。重い負荷のもとで同じことが起こることがあります。これはおそらく一時的な問題ではないとわかっている訪問者には混乱します。サイトが戻ったときに訪問者に自動的にページを更新させる方法はありますか?502ページの自動更新NGゲートウェイエラー
2
A
答えて
1
これは、Javascriptを使用して現在のページのHTTPステータスコードを確認し、サーバーがバックアップされたときにページを更新する(つまり、200 OK
ステータスコードを返す)ことで実現できます。多くのユーザーが502
エラーページをすぐに見つけたときにサーバーを叩くのを避けるため、truncated binary exponential backoffアルゴリズムを使用することをおすすめします。これは、再試行の間隔が毎回倍になって、あらかじめ設定された最大値に達することを意味し、サーバーの全体的な負荷を低下させます。
以下のコードは、AJAXの現在のページのHTTPステータスが200 OK
になるまでチェックします。この場合、ページを更新してライブバージョンを取得します。 502
に遭遇した場合、8秒間隔で開始し、16,32、...、4096秒後に4096秒間隔(約68分間)で無制限に再試行して再試行を試みます。 502
または200
以外のコードが検出された場合、再試行プロセスは自動的に中止されます(ただし、必要に応じてcase
ステートメントでこれを変更できます)。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Currently unavailable</title>
</head>
<body>
<h1>Site currently unavailable (code 502)</h1>
<p>This page will refresh when the site is back.</p>
<noscript>Your browser doesn’t support javascript. Please try refreshing the page manually every few minutes.</noscript>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
/* Set starting and maximum retry times in seconds */
var retry_current = 8, // first refresh at 8 seconds
retry_max = 4096, // refresh time truncated at about 68 minutes
check_response = function() {
$.ajax(
{
url: window.location.href,
type: "HEAD",
complete: function (jqXHR) {
switch (jqXHR.status) {
case 200:
window.location.reload(true);
break;
case 502:
if(retry_current < retry_max) {
retry_current *= 2;
}
setTimeout(check_response, retry_current * 1000);
}
}
});
};
setTimeout(check_response, retry_current * 1000);
</script>
</body>
</html>
あなたはnginxのを使用している場合は、ページを使用するように設定ファイルに以下を追加することができます。
error_page 502 /502.html;
location = /502.html {
alias /path/to/502.html;
}
関連する問題
- 1. nginx 502不良ゲートウェイエラー
- 2. 502高負荷でのゲートウェイエラー(nginx/php-fpm)
- 3. nginxのnode.jsアプリ502不良ゲートウェイエラー
- 4. Drupal + Nginx + Php-cgi:502悪いゲートウェイエラー
- 5. NginxとPHP-FPM 502不良ゲートウェイエラー
- 6. ページの自動更新
- 7. Javascript自動更新ページ?
- 8. JQuery自動ページ更新のリフレッシュ
- 9. 502流星、ブラウザポリシー、S3に接続するHTTPでゲートウェイエラー
- 10. 自動更新ラジオチェック
- 11. 自動更新データバインディング
- 12. SVN自動更新
- 13. 自動更新サブモジュール
- 14. 自動更新アプリケーション
- 15. 自動更新JSON
- 16. PHPスクリプトの機能で502の不正なゲートウェイエラーが発生する
- 17. クリアNG-モデル[更新NG-モデル
- 18. Homestead 1.0.0から1.0.1へのアップデートphp7.0-fpm.serviceの失敗した再起動に関連する502ゲートウェイエラーの問題
- 19. フレックスアプリケーションの自動更新
- 20. サービスの自動更新
- 21. 窓の自動更新
- 22. ラベルの自動更新
- 23. backbone.jsの自動更新ビュー
- 24. MySQLのタイムスタンプ自動更新
- 25. SSRS - データセットフィールドの自動更新
- 26. Crystal Reportsの自動更新
- 27. Tomcatアプリケーションの自動更新
- 28. iPhoneコンテンツの自動更新
- 29. 自動更新の引数
- 30. MySQLの自動更新イベント