nginx 503 サービスが一時的に利用できない問題を解決する方法

nginx 503 サービスが一時的に利用できない問題を解決する方法

最近、ウェブサイトを更新すると、503 Service Temporarily Unavailable エラーが頻繁に発生します。うまくいくこともあります。最近、nginx.conf で単一 IP アドレスへのアクセス回数の制限 (limit_req_zone $binary_remote_addr zone=allips:20m rate=20r/s;) について考えました。この数を増やしてウェブサイトを更新すると、問題が解決しました。 (これも limit_req zone=allips burst=50 nodelay; を増やしました) 問題を確認するために、数値を繰り返し変更してみたところ、確かにここに問題があることがわかりました。この数値が小さすぎると問題が発生します。Fiddler を通じて、ページ上で参照される js、css、画像がすべて 1 つの接続としてカウントされるため、Web ページを更新する必要があることがわかります。したがって、1 回のページ更新でこの制限を超える可能性があり、この制限を超えると、「503 サービスは一時的に利用できません」というメッセージが表示されます。

nginx.confを添付する

#ユーザーnobody;
ワーカープロセス 1;
#ワーカー_rlimit_nofile 100000; 
#error_log ログ/error.log;
#error_log ログ/error.log 通知;
#error_log ログ/error.log 情報;
 
#pid ログ/nginx.pid;
 
イベント {
  ワーカー接続 1024;
}
 
http {
  mime.types を含めます。
  デフォルトタイプ アプリケーション/オクテットストリーム;
 
##キャッシュ##
 プロキシ接続タイムアウト 5;
 プロキシ読み取りタイムアウト 60;
 プロキシ送信タイムアウト 5;
 プロキシバッファサイズ 16k;
 プロキシバッファ 4 64k;
 proxy_busy_buffers_size 128k;
 proxy_temp_file_write_size 128k;
 proxy_temp_path /home/temp_dir;
 proxy_cache_path /usr/local/nginx/cache レベル=1:2 キーゾーン=cache_one:200m 非アクティブ=1d 最大サイズ=30g;
 ##終わり##
#IP あたりの 1 秒あたりのアクセス回数の制限 10 
limit_req_zone $binary_remote_addr ゾーン=allips:20m レート=20r/s;
 
  #log_format main '$remote_addr - $remote_user [$time_local] "$request" '
  # '$status $body_bytes_sent "$http_referer" '
  # '"$http_user_agent" "$http_x_forwarded_for"';
 
  #access_log ログ/access.log メイン;
 
  ファイル送信オン;
  #tcp_nopush オン;
 
  #キープアライブタイムアウト 0;
  キープアライブタイムアウト65;
 
  #gzip オン;
アップストリーム myweb80{
  ip_ハッシュ;
  サーバー 192.168.3.105:80;
  サーバー 192.168.3.103:80;
}
 
アップストリーム myweb8080{
  ip_ハッシュ;
  サーバー 192.168.3.222:10080;
  #サーバー 192.168.3.103:8080;
 } 
アップストリーム myweb10086{
  ip_ハッシュ;
  サーバー 192.168.3.102:10086;
  サーバー 192.168.3.108:10086;
 } 
アップストリーム myweb443{
  ip_ハッシュ;
  サーバー 192.168.3.105:443;
  サーバー 192.168.3.103:443;
 } 
 
  # IP、名前、ポートベースの設定を組み合わせた別の仮想ホスト
  #
  サーバー{
    聞く 80;
    218.17.158.2 を許可します。
127.0.0.0/24 を許可します。
192.168.0.0/16 を許可します。
58.251.130.1 を許可します。
183.239.167.3 を許可します。
61.145.164.1 を許可します。
すべてを否定する;
サーバー名 myweb.com;
    位置 / {
        プロキシパス http://myweb80;
proxy_set_header X-Real-IP $remote_addr;
limit_req ゾーン=allips バースト=50 ノードレイ;  
    }
  }
 
  サーバー{
    8080を聴く;
218.17.158.2 を許可します。
127.0.0.0/24 を許可します。
192.168.0.0/16 を許可します。
58.251.130.1 を許可します。
183.239.167.3 を許可します。
61.145.164.1 を許可します。
すべてを否定する;
    位置 / {
        プロキシパス http://myweb8080;
proxy_set_header X-Real-IP $remote_addr;
limit_req ゾーン=allips バースト=50 ノードレイ;  
    }
  }
 
# HTTPS サーバー
  #
  サーバー{
    10086 ssl を聴く;
    server_name ローカルホスト;
218.17.158.2 を許可します。
127.0.0.0/24 を許可します。
192.168.0.0/16 を許可します。
58.251.130.1 を許可します。
183.239.167.3 を許可します。
61.145.164.1 を許可します。
#すべて拒否;
    ssl_証明書 ssl/1_www.myweb.com_bundle.crt;
    ssl_certificate_key ssl/2_www.myweb.com.key;
 
  # ssl_session_cache 共有:SSL:1m;
  #ssl_session_timeout 5分;
 
  # ssl_ciphers HIGH:!aNULL:!MD5;
  # ssl_prefer_server_ciphers オン;
 
    位置 / { 
   プロキシパス https://myweb10086; 
   #ロフトhtml; 
   #インデックス index.html index.htm; 
    } 
  }
 
  サーバ{ 
    443 ssl を聴く; 
    server_name ローカルホスト;
 
    ssl_certificate ssl/1_www.myweb.com_bundle.crt; 
    ssl_certificate_key ssl/2_www.myweb.com.key;
 
  #ssl_session_cache 共有:ssl:1m; 
  #ssl_session_timeout 5分;
 
  #ssl_ciphers 高: ! aNULL:! MD5; 
  #ssl_prefer_server_ciphers オン;
 
    位置 / { 
   プロキシパス https://myweb443; 
   #ロフトhtml; 
   #ロフトhtml; 
   #インデックス index.html index.htm; 
    } 
  } 
}

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • TeamCenter12 にログインする際の 404/503 問題の解決方法
  • SVN エラー: 変更の更新エラー: svn: E155037 解決策
  • Windows に Node.js をインストールするときに発生するエラー 2503 および 2502 を解決する方法
  • Apache で Python プログラムをデプロイする際の 503 エラーの解決方法
  • サーバー共通エラーコード 500、501、502、503、504、505 を解析しています
  • サーバーエラーコード 500 501 502 503 504 505 詳細な説明
  • 503 サービスは一時的に利用できませんというエラーとは何ですか?
  • 503 サービス利用不可エラーの解決方法の説明

<<:  Vue バッチ更新 DOM 実装手順

>>:  Windows 環境での MYSQL5.7 設定ファイルの場所のグラフィカル分析

推薦する

自動開始および停止コマンドを適用するには、Docker サービスを再起動します (推奨)

Docker サービス アプリケーションを再起動するコマンドを見てみましょう。具体的な内容は次のと...

Vue3 リストインターフェースデータ表示の詳細

目次1. リストインターフェースの表示例2. データを表示する2.1. コンポーネントがリストに表示...

vue+springbootでログイン認証コードを実現

この記事では、ログイン認証コードを実装するためのvue+springbootの具体的なコードを例とし...

MySQL は、現在のデータ テーブル内のすべての時間に対して指定された時間間隔を増加または減少させます (推奨)

DATE_ADD() 関数は、指定された時間間隔を日付に追加します。現在のテーブル内のすべてのデー...

MySQL マスタースレーブレプリケーションの実装手順

目次mysql マスタースレーブレプリケーションMySQL マスタースレーブレプリケーション方式My...

JDカルーセル効果を実現するための純粋なHTMLとCSS

JD カルーセルは、動的な効果を追加せず、主に位置決めの知識を使用して、純粋な HTML と CS...

WeChat アプレットのカスタム タブバー コンポーネント

この記事では、WeChatアプレットのカスタムタブバーコンポーネントの具体的なコードを参考までに紹介...

優れたウェブワイヤーフレーム設計・制作ツール13選を紹介

プロジェクトの作業を開始するときは、ワイヤーフレームを使用してアイデアをスケッチすることが重要です。...

Linux システムで PATH 環境変数を設定する方法 (3 つの方法)

1. Windows システムでは、JDK のインストールなど、多くのソフトウェアのインストールで...

Gokudōゲームにおけるフロントエンド知識のまとめ

背景日本語を学び始めた当初は、日本語の50音を覚えるのは簡単ではなく、特にカタカナを覚えるのは困難で...

Vue3 スロットの使用状況の概要

目次1. Vスロットの紹介2. 匿名スロット3. 名前付きスロット4. スコープ付きスロット5. 動...

MySql 学習 3 日目: データ テーブル間の接続とクエリの詳細

主キー:キーワード: 主キー機能: null にすることはできず、一意である必要があります。主キーの...

CSS+SVGでBステーションの課金効果を実現するサンプルコード

困難SVG グラフィックの 2 つのマスクの作成まず、コード左側のピンク色のボックスの内容ですこれに...

HTMLのインライン要素とブロックレベル要素とは何か、またそれらの違いは何ですか

以前の就職面接で面接官が尋ねた質問を覚えています。「インライン要素とは何ですか。ブロックレベル要素と...

image/x-png の ContentType について

これにより、png ファイルのアップロードも不可能になりました (後で情報を調べたところ、レジストリ...