2026年8月21日
2026年8月21日
Nginxで帯域幅を制限する方法(limit_rate)
はじめに
帯域幅はWebサービスのパフォーマンスと信頼性を維持するためには重要な要素です。Nginxではlimit_rateという指令を使い、クライアントからの要求やレスポンスの速度を制限することができます。これにより、サーバー過負荷を防ぎ、サービスの安定運営が可能になります。
症状・背景
- 一部のユーザーから遅延を感じるクレームがある場合
- 高速なネットワーク接続を持つ一部のユーザーに対して、他のユーザーとの不公平感がある場合
- サーバーの帯域利用量が異常に多いと疑われる場合
手順・設定方法
ステップ1: Nginx配信ルールの編集
# /etc/nginx/nginx.conf または /etc/nginx/sites-available/default を開きます。
sudo nano /etc/nginx/nginx.conf
# 必要に応じて、limit_rate指令を含むコンフィグレーションブロックを探します。
ステップ2: 帯域制限の設定
# 具体的な帯域制限値(例:100k/s)を指定します。
location / {
limit_rate 100k;
}
# オプションで時間単位を指定することも可能です(例:100k/minute)。
location / {
limit_rate_after 50m;
limit_rate 100k/second;
}
ステップ3: 実装と適用
# Nginxの設定ファイルを再読み込みします。
sudo nginx -t
sudo systemctl reload nginx
# または、サービスを再起動する場合:
sudo systemctl restart nginx
ステップ4: 監視と調整
# 実際の帯域利用状況をモニタリングするために、Nginxのアクセスログやエラーログを確認します。
tail -f /var/log/nginx/access.log
# また、`limit_rate`指令が効果的に動作しているかテストするには:
curl --speed-time 5 --speed-limit 100 http://example.com
注意事項
limit_rateは接続全体に対する制限であり、個々のユーザーに対して適用されます。- 高速なネットワーク環境では、過度に厳格な帯域制限が逆にパフォーマンスを低下させる可能性があります。
- 一時的な過負荷からサーバーを保護するためにも、適切な帯域制限は重要です。
まとめ
1. 帯域制限の必要性: 帯域制限はサーバーの安定稼働とパフォーマンスを維持するための重要な手段です。
2. limit_rate指令: Nginxのlimit_rate指令を使い、必要な帯域量を設定できます。
3. 実装方法: 設定ファイルを開き、locationブロック内でlimit_rate指令を使用します。
4. 監視と調整: 実際の帯域利用状況をモニタリングし、必要に応じて設定を調整しましょう。
関連記事: