はじめに:なぜCDNが必要なのか?
皆さんはご自身のウェブサイトやブログの表示速度について考えたことがありますか?ユーザーはページの読み込みに3秒以上かかると、離脱してしまうと言われています。せっかく魅力的なコンテンツを作っても、速度が遅ければその努力は報われません。
ここで登場するのがCDN(Contents Delivery Network)です。CDNは、ウェブサイトのコンテンツ(画像、CSS、JavaScriptなど)を世界中に分散配置されたサーバー(エッジサーバー)にキャッシュし、ユーザーに地理的に最も近いサーバーからコンテンツを配信する仕組みです。
これにより、以下のようなメリットが得られます。
- 表示速度の向上: サーバーの負荷が軽減され、ユーザーへのレスポンスが高速化します。
- 負荷分散と耐障害性: オリジンサーバー(CDNへ配布する大元のデータを保存するサーバー)へのアクセス集中を防ぎ、大規模アクセス時にも安定したサービス提供が可能になります。
- セキュリティ向上: DDoS攻撃対策など、CDNプロバイダーが提供するセキュリティ機能を利用できます。
今回は、これらのメリットを無料で享受できる、世界的に有名なCDNサービス「Cloudflare」を、最新のAlmaLinux 10上に構築したLAMP環境(Linux, Apache, MariaDB, PHP)に適用する方法を解説します。
準備:AlmaLinux 10 + LAMP環境の確認
このガイドを進めるにあたり、以下の環境がすでに構築されていることを前提とします。
- OS: AlmaLinux 10 (またはRHEL系の最新バージョン)
- Webサーバー: Apache HTTP Server
- データベース: MariaDB
- プログラミング言語: PHP
- ドメイン名: 独自ドメインを取得済みであること(例:
example.com)
LAMP 環境の基本的な構築手順については本記事では割愛しますが、AlmaLinux 10 では dnf コマンドを用いて主要なパッケージを容易にインストールできます。まずは、Web サイトが HTTP(ポート 80)または HTTPS(ポート 443)で正常に公開されていることを確認しておきましょう。
以下の記事も参考になります:
AlmaLinux 10.0 で LAMP 構築
Cloudflareの導入手順(無償プラン)
Cloudflareの導入は非常に簡単で、コーディングやサーバーの設定変更はほとんど必要ありません。
1. Cloudflareアカウントの作成とサイトの追加
- Cloudflareの公式サイトにアクセスし、アカウントを作成します。
- ダッシュボードから「サイトを追加」を選択し、適用したいドメイン名(例:
example.com)を入力します。
2. プランの選択
- サイトを追加すると、プラン選択画面が表示されます。今回は無料の「Free」プランを選択してください。多くの基本的なCDN、SSL/TLS、セキュリティ機能が利用可能です。
Cloudflare 無料プランと有料プラン(Pro / Business)の違い
Cloudflare の無料プランでも基本的な WAF(Managed Rules)が利用できますが、ビジネス用途や高度なセキュリティ要件を求める場合は、有料プランを検討する必要があります。以下に主な違いをまとめます。
| 機能 | 無料プラン(Free) | Pro / Business プラン |
|---|---|---|
| WAF(Managed Rules) | 基本的なルールセットのみ利用可能。ゼロデイ対応は限定的。 | 高度なルールセットを含むフル機能版 WAF を利用可能。より細かくチューニング可能。 |
| カスタム WAF ルール | 5件まで | 複雑な条件でルール作成が可能 |
| Bot 対策 | Bot Fight Mode のみ | Bot Management による高度な検知・軽減が可能 |
| レート制限 | 別途従量課金 | プランに応じて一定数が無料で利用可能 |
| キャッシュ最適化 | 基本的な CDN キャッシュ | Smart Tiered Cache や高度なキャッシュ制御 |
| 画像最適化 (Polish / Mirage) | 利用不可 | 利用可能 |
| サポート | コミュニティベース | メールサポート(Business では優先対応) |
3. DNSレコードの読み込み
- Cloudflareが現在のドメインのDNSレコードを自動的にスキャンします。多くの場合、既存のレコード(Aレコード、CNAMEレコード、MXレコードなど)が正しく表示されます。
- 重要なポイント: WebサイトのAレコードまたはCNAMEレコードの右隣にあるオレンジ色の雲のアイコンを確認してください。
- オレンジ色の雲 (プロキシステータス:プロキシ済み): Cloudflareを経由してトラフィックがルーティングされ、CDN/セキュリティ機能が有効になります。これが目標の状態です。
- 灰色の雲 (プロキシステータス:DNSのみ): Cloudflareを経由せず、単なるDNSサーバーとして機能します。
- レコードを確認し、Webサイトへのアクセスに関するレコードがオレンジ色の雲になっていることを確認してください。もし灰色であれば、クリックしてオレンジ色に変更します。
(例: cdn.example.com をCloudflare経由とした場合)
4. Cloudflareネームサーバーへの変更
これが最も重要なステップです。
- Cloudflareが、皆さんのドメインに設定すべき2つのCloudflareネームサーバー(例:
karl.ns.cloudflare.com,sydney.ns.cloudflare.com)を提示します。 - 皆さんがドメインを取得したレジストラ(お名前.com, バリュードメインなど)の管理画面にログインします。
- 該当ドメインのネームサーバー設定を、レジストラが指定するネームサーバーから、Cloudflareが提示した2つのネームサーバーに書き換えます。
この変更がインターネット全体に反映されるまで、通常は数時間から最大48時間程度かかります。
5. 導入完了の確認
- Cloudflareのダッシュボードでステータスが「アクティブ」に変われば導入完了です。
- ご自身のWebサイトにアクセスし、ブラウザの開発者ツールなどでレスポンスヘッダーを確認してください。
Server: cloudflareCF-Cache-Status: MISS(初回アクセス時) またはHIT(キャッシュが効いている場合)
これらのヘッダーが表示されていれば、CloudflareのCDN経由でコンテンツが配信されています。
最適化とセキュリティ設定(AlmaLinux LAMP環境向け)
Cloudflareを導入したら、次にLAMP環境の特性を活かした最適化設定を行いましょう。特にRHEL系のAlmaLinuxでは、ApacheのモジュールとSELinuxへの配慮が必要です。
1. 【AlmaLinux特有】アクセスログの正しい記録(mod_remoteip の確認)
Cloudflareを介すると、オリジンサーバー(AlmaLinux)に届くアクセス元IPアドレスは、すべてCloudflareのエッジサーバーのIPになってしまいます。
そのため、実際の訪問者のIPアドレスをサーバーのアクセスログに正確に記録するためには、Apacheのmod_remoteipモジュールを利用する必要があります。
最近のAlmaLinux 10のApache(httpd)では、mod_remoteipはデフォルトでインストール・有効化されていることが多いですが、設定状態を確認しておきましょう。
-
Apache のモジュール一覧でロード状況を確認
# apachectl -M | grep remoteip -
httpd.conf や conf.modules.d などに以下があるか確認
LoadModule remoteip_module modules/mod_remoteip.so
例
# grep remoteip /etc/httpd/*/*
/etc/httpd/conf.modules.d/00-base.conf:LoadModule remoteip_module modules/mod_remoteip.so
2. 【AlmaLinux特有】SELinuxの調整(Enforcingの場合)
AlmaLinuxはデフォルトでSELinuxが有効(Enforcingモード)になっており、高度なセキュリティを提供しますが、これがWebサーバーの動作を制限することがあります。
SELinuxの確認とWebサーバーの設定
特に、PHPなどから外部リソースにアクセスする処理(例:CMSのアップデートチェック、外部API連携)が、Cloudflare導入後に機能しなくなった場合、多くはSELinuxが原因です。
-
現在のSELinux状態を確認
# sestatus -
HTTP通信の許可設定
Webサーバー(Apache)がネットワーク経由での外部への接続を許可するため、以下のsemanageコマンドを実行します。
PHP/Apacheが外部へ接続できるよう許可# setsebool -P httpd_can_network_connect 1※ -P オプションは、OS再起動後も設定を永続化するために重要です。
3. SSL/TLS設定
AlmaLinux 10サーバーで独自にSSL証明書(例:Let’s Encrypt)を設定している場合、CloudflareのSSL/TLS暗号化モードを「Full (strict)」に設定することを強く推奨します。
- Full (strict): ユーザー ⇔ Cloudflare 間の接続と、Cloudflare ⇔ オリジンサーバー (AlmaLinux) 間の接続の両方がHTTPSで暗号化されます。最も安全な設定です。
4. キャッシュ設定の微調整
デフォルト設定でも十分ですが、キャッシュの効き具合を細かく調整できます。
- Caching → Configuration(構成):キャッシュレベルを「Standard」にしておくのが一般的です。
- Page Rulesの活用: 特定のディレクトリ(例:管理者ログイン画面
/admin/*)や、ダイナミックなコンテンツを配信しているページについて、**キャッシュを無効にする**設定(**Bypass Cache**)を適用すると、管理画面での操作の遅延を防ぎます。
例:
example.com/admin/*のURLに対して「Caching Level: Bypass」を設定する。
5. セキュリティレベルの設定
無料プランでも強力なWAF(Web Application Firewall)の一部機能が使えます。
- Security → 設定:Cloudflare 管理ルールセットがアクティブになっていることを確認
これだけで、主要な攻撃(SQLi:SQLインジェクション、XSS:クロスサイトスクリプティングなど)に対する基本的な防御が有効になります。
まとめ:無償CDNがもたらす効果
Cloudflareの導入と、それに伴うAlmaLinux/Apache側のmod_remoteipによるログの正確化、SELinuxによるセキュリティ配慮の設定を行うことで、サイトの安定性・速度・セキュリティを大きく底上げすることができます。
個人ブログや小規模サイトであれば無料プランでも十分に利用できますが、EC サイト・会員制サービス・企業サイトなど、高いセキュリティと安定稼働が求められるサイトでは、有料プランが提供するカスタムWAFルールやBot Management、高度なキャッシュ制御などが、安全性と運用効率の向上に大きく寄与します。
Cloudflare を活用することで、サイトの安定性・速度・セキュリティを大きく底上げすることができます。まずは無料プランで仕組みを理解し、必要に応じて有料プランへ拡張していくことで、無理のない形で安全かつ快適な Web 運用を実現できるでしょう。
本記事は2025年12月時点の情報に基づき作成されています。












![群馬の法人ITサポートサービス Wide Net[ワイドネット] 群馬の法人ITサポートサービス Wide Net[ワイドネット]](https://www.nedia.ne.jp/wp-content/themes/nedia/images/bnr_bt_widenet03.png)



