2026年5月17日
2026年5月17日
Apacheで接続数の上限を設定する方法
はじめに
Apacheは広く使用されているオープンソースのWebサーバーソフトウェアで、接続数を適切に制限することで、サーバーのパフォーマンスと安定性を向上させることが可能です。本記事では、 Apache 2.4.x や更高版本中如何设置连接上限的方法进行详细说明。
症状・背景
- サーバー負荷が高まり、ウェブサイトにアクセスできない状況
- 大量の同時接続でサーバーがダウンする場合
- 高頻度のリクエストにより、一部のユーザーが待たされる状況
手順・設定方法
ステップ1: httpd.conf ファイルを開く
# Apacheの配置ファイルを開き、必要に忾して設定を行う
sudo nano /etc/httpd/conf/httpd.conf
ステップ2: MaxConnectionsPerChild オプションを設定
# 子プロセスが有効な期間内の最大接続数を制限します
MaxRequestsPerChild 500
ステップ3: ListenBacklog の設定
# プロキシまたはリバースプロキシの場合は必要です。MaxConnectionsPerChild オプションと組み合わせて利用します。
ListenBackLog 2048
ステップ4: 追加で接続制限を設定
# PHP-FPMとの整合性を保つための追加設定も考慮します。PHP-FPMはApacheの外部プロセッサとして使用されることが多いです。
<IfModule mod_php7.c>
php_value max_children 50
</IfModule>
# Apacheの最大同時接続数を制限するための設定
Listen 80
ステップ5: 設定の保存とApacheの再起動
# 設定が完了したら、Apacheサーバーを再起動して変更を適用します
sudo systemctl restart httpd
注意事項
- MaxConnectionsPerChild は子プロセスごとの最大接続数を制限します。増やすことで、サーバー負荷を分散させることができます。
- ListenBackLog の値を適切に設定することで、大量の同時接続による影響を軽減できます。
- PHP-FPMとの整合性を保つためにも、PHPの最大子プロセス数を指定することが重要です。
まとめ
1. MaxConnectionsPerChild: 子プロセスごとの最大接続数を制限します。
2. ListenBackLog: 同時接続を管理するために必要です。値はサーバーの負荷に応じて調整します。
3. PHP-FPM の設定: サーバー全体のパフォーマンスを考慮に入れるために、外部プロセッサとの整合性も重要です。
4. Apache の再起動: 設定変更後は Apache を再起動して適用します。
5. 監視と調整: 定期的に接続数の状況を確認し、必要に忾して設定を調整することが推奨されます。
関連記事: