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 設定ファイルの場所のグラフィカル分析

推薦する

MySQL ストアド関数の詳細な紹介

目次1. ストアド関数を作成する2. ストアド関数の呼び出し3. 保存された関数を削除する4. スト...

Dockerイメージをプルしてバージョンを確認する方法

イメージのバージョンとタグを確認するには、docker hubで確認する必要があります。アドレスは次...

ランダムロールコールテーブルを実装するためのネイティブJavaScript

この記事では、JavaScriptのランダムロールコールテーブルの具体的なコードを参考までに紹介しま...

Windows 10 システムに mysql-8.0.13 (zip インストール) をインストールする詳細なチュートリアル

インストール環境の説明•システムバージョン: windows10 •MySQL バージョン: mys...

Javascript で関数のカリー化とデカリー化を実装する方法

関数のカリー化(黒い疑問符の顔)? ? ?カレー(黒い疑問符の顔)? ? ?これは完璧な中国語翻訳で...

ブートストラップテーブルの使い方のまとめ

この記事では、bootstrapテーブルの使い方を参考までに紹介します。具体的な内容は次のとおりです...

CentOS 7へのJenkinsのインストール手順の詳細な説明

Yum経由でJenkinsをインストールする1. インストール # yum ソースをインポート wg...

入力テキスト ボックスと画像検証コードの位置合わせの問題 (画像は常に入力より 1 つ上になります)

Web ページ制作では、input と img が同じ行に配置されることが多く、img タグが常に ...

MySQL UPDATE ステートメントの「典型的な」落とし穴

目次1. 問題のあるSQL文たとえば、次の図のような質問をした人がいました。 問題は次のように要約で...

Docker コンテナに TensorRT をインストールする際の問題

Ubuntu にインストールされているバージョンをアンインストールします。 sudo apt-get...

Linux で MongoDB のリモート自動バックアップを実装する方法

序文古いプロジェクトを引き継ぐ苦労 - MongoDB クラスターの学習と構築に関する前回の記事を読...

Linux オペレーティング システムの概要と紹介

目次1. オペレーティングシステムとは何か2. Linuxの起源3. Linuxの基本機能4. Li...

XHTML と CSS によるオブジェクト指向プログラミング

<br />XHTML と CSS がオブジェクト指向だったらよかったのに。 。太陽は北...

vue-cli で stimulsoft.reports.js を使用する詳細なチュートリアル

vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...