常時接続のWordPressサイトを設定するための実践ガイド
セキュリティ設定や監視など、WordPress サイトを 24 時間 365 日アクセスできるように構成するための完全なガイドです。.

常時接続のWordPressサイトを設定するための実践ガイド

この記事では、WordPress サイトを 24 時間 365 日アクセスできるように構成する方法を説明し、セキュリティと監視に関する推奨事項も紹介します。.
0 株式
0
0
0
0

はじめに — 「常時接続WordPressサイト構築の実践ガイド」が重要な理由

今日の世界では、アクセス 24/7 WordPressサイトは、ビジネス、オンラインストア、SaaSプロジェクト、そしてトラフィックの多いブログにとって不可欠です。この記事は、サイトの継続的な運用に必要なアーキテクチャ、セキュリティ、キャッシュ、監視、バックアップ戦略の構築に関する包括的かつ実践的なガイドです。.

高可用性のための設計原則

常時稼働のWordPressサイトを構築するには、多層的な冗長性を実装する必要があります。これらのレイヤーを適切に組み合わせることで、障害発生ポイントを削減し、フォールトトレランスを向上させることができます。.

  • ロードバランサー: 複数のウェブノード間でトラフィックを分散します。.
  • 複数の Web ノード: 同一構成の複数の Nginx/PHP-FPM サーバー。.
  • レプリケーションを備えたデータベース: マスター/リードレプリカまたは Galera/プライマリレプリカ クラスター。.
  • 共有ストレージまたはオブジェクトストレージ: S3 互換または NFS へのアップロード (wp-content/uploads)。.
  • CDN: 静的ページをエッジにキャッシュして配布します。.
  • 監視とヘルスチェック: Ping Pong ヘルスチェックとリカバリの自動化。.

このガイドを提供している会社は、 世界85か所クラウド サーバー、ロード バランサー、CDN、BGP ネットワークは、ノードを適切な場所に配置するサービスを提供します。たとえば、取引 — 取引所への ping が低い場所、ゲーム — プレイヤーに近い場所、AI およびレンダリング — GPU がある場所などです。.

WordPress のアーキテクチャ設計の提案は常に利用可能

基本オプション(小規模から中規模のウェブサイト向け)

  • VPSまたはクラウドサーバー Nginx + PHP-FPM + MariaDB
  • オブジェクトキャッシュ用のRedis/Memcached
  • 静的ファイル用のCDN
  • 毎日のスナップショットとデータベースのバックアップ

高度なオプション(商用サイトやトラフィックの多いサイト向け)

  • ロードバランサーの背後に 2 つ以上の Webnode(自動スケール)
  • プライマリデータベース + リードレプリカまたは Galera クラスター
  • アップロード用のオブジェクトストレージ(S3互換)
  • セッションとオブジェクトキャッシュ用のRedis Cluster
  • WAFとDDoS対策
  • 安全なデプロイメントのための CI/CD
  • モニタリング(Prometheus/Grafana + Alertmanager)と稼働時間チェック

ステップバイステップ: Ubuntu 22.04 での基本的なインストールと設定 (実例)

これは、開始するための単一ノードの例のシナリオです。HA のために複数のノードで同じ構成を使用します。.

ベースインストール

sudo apt update && sudo apt upgrade -y
sudo apt install nginx certbot python3-certbot-nginx -y
sudo apt install mariadb-server -y
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-xmlrpc php-redis php-imagick -y
sudo systemctl enable --now nginx php7.4-fpm mariadb

注記: PHPパッケージ名は異なるバージョンである可能性があります。 php8.1 または php8.2 使用。.

MariaDB のセキュリティ保護と WordPress データベースの作成

sudo mysql_secure_installation

MySQL/MariaDB コンソールで以下を実行します:

CREATE DATABASE wp_database CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY 'StrongPasswordHere!';
GRANT ALL PRIVILEGES ON wp_database.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;

WordPress 用 Nginx の設定 (サンプル ファイル)

cat > /etc/nginx/sites-available/example.com <<'EOF'
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.php index.html;

    client_max_body_size 64M;
    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }

    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires 30d;
        add_header Cache-Control "public, no-transform";
    }

    location = /favicon.ico { log_not_found off; access_log off; }
    location = /robots.txt  { log_not_found off; access_log off; }
}
EOF
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo mkdir -p /var/www/example.com
sudo chown -R www-data:www-data /var/www/example.com
sudo nginx -t && sudo systemctl reload nginx

Let's Encrypt で SSL を有効にする

sudo certbot --nginx -d example.com -d www.example.com

WP-Cronを無効にして実際のCronを設定する

wp-config.php 次の値を追加します。

define('DISABLE_WP_CRON', true);

次に、サーバーの cron が定期的に実行されるように設定します。

sudo crontab -u www-data -e
*/5 * * * * php /var/www/example.com/wp-cron.php > /dev/null 2>&1

WP-CLI をインストールし、コマンドラインから WordPress を設定する

curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
php wp-cli.phar --info
chmod +x wp-cli.phar
sudo mv wp-cli.phar /usr/local/bin/wp

cd /var/www/example.com
wp core download --locale=fa_IR
wp core config --dbname=wp_database --dbuser=wp_user --dbpass='StrongPasswordHere!' --dbhost=localhost --dbprefix=wp_
wp core install --url="https://example.com" --title="وب‌سایت من" --admin_user=admin --admin_password='AdminPass!' [email protected]
sudo chown -R www-data:www-data /var/www/example.com

キャッシュと高速化

最高のパフォーマンスと負荷軽減を実現するには、OPcache、Redis、CDN を組み合わせて使用します。.

  • レディス オブジェクトキャッシュとセッション
  • OPキャッシュ php.ini で次の設定をします。
opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

信頼できるキャッシュプラグインを使用します (例: WPロケット または W3トータルキャッシュ) を使用し、ファイルを CDN およびオブジェクト ストレージにオフロードすることをお勧めします。.

Redisのインストール(例)

sudo apt install redis-server -y
sudo systemctl enable --now redis
sudo apt install php-redis -y

次に、WordPress に Redis Object Cache プラグインをインストールし、接続をテストします。.

運用およびWebアプリケーションのセキュリティ

階層化セキュリティには、SSH セキュリティ、ファイアウォール、Fail2Ban、WAF、ファイル権限が含まれます。.

SSH

キーベースの認証を使用し、デフォルトのポートを変更し、ルート ログインを無効にします。

sudo sed -i 's/#Port 22/Port 2222/' /etc/ssh/sshd_config
sudo sed -i 's/PermitRootLogin yes/PermitRootLogin no/' /etc/ssh/sshd_config
sudo systemctl reload sshd

ファイアウォールとFail2Ban

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw allow 2222/tcp
sudo ufw enable
sudo apt install fail2ban -y
sudo systemctl enable --now fail2ban

ブルートフォース攻撃の保護には Fail2Ban を使用し、アプリケーションの保護には ModSecurity またはクラウド WAF を使用します。.

ファイルと権限

find /var/www/example.com -type d -exec chmod 755 {} \;
find /var/www/example.com -type f -exec chmod 644 {} \;

WordPress ダッシュボードからファイルを編集できないようにするには:

define('DISALLOW_FILE_EDIT', true);

次のようなプラグインを使用すると ワードプレス 管理者アカウントでは 2FA を有効にすることをお勧めします。.

バックアップと復元

推奨戦略:毎日のデータベースバックアップ、毎週のサイト全体のバックアップ、30日間のオフライン保存。迅速な復旧にはスナップショットを使用します。.

MySQL ダンプコマンドの例

mysqldump -u wp_user -p wp_database | gzip > /backups/wp_db_$(date +%F).sql.gz

rsyncによる完全バックアップ

rsync -a --delete /var/www/example.com/ /backup-server/www/example.com/

復元可能性を確認するために、常に復元テストを定期的に実行してください。.

監視と警告

  • プロメテウス + グラファナ: CPU リソース、メモリ、ディスク I/O、PHP-FPM メトリックを監視します。.
  • 稼働時間チェック: UptimeRobot または合成サービスを使用して、ホームページ、ログイン ページ、API エンドポイントを確認します。.
  • ログ収集: 攻撃とパフォーマンスの低下を分析するための ELK スタックまたは Loki/Promtail + Grafana。.
  • 警告: サービスのダウンやエラーの増加については、SMS、電子メール、または Slack でお問い合わせください。.

DDoS攻撃およびネットワーク層攻撃からの保護

ネットワーク レベルの Anti-DDoS と、レート制限およびチャレンジ ページを備えた CDN を使用して、24 時間 365 日アクセス可能な機密サイトを保護します。.

Nginx でレート制限を設定するか、クラウド WAF を使用することも検討できます。.

データベースの最適化とスケーラビリティ

  • 設定 innodb_buffer_pool_size DB サーバー RAM の約 70~80%。.
  • 活性化 スロークエリログ 問題のあるクエリを識別するため。.
  • 読み取りレプリカを使用して、読み取り負荷を軽減します。.
  • 大規模では、サービス (DB、Web、キャッシュ、オブジェクト ストレージ) を分離します。.

特定のアプリケーションに関するヒント

  • トレーダー: レイテンシを抑えるため、取引所/取引サーバーに近い場所を選択してください。ping値の低い専用の取引VPSを使用し、BGPでネットワークを構成してください。.
  • ゲーマー: 低い ping、専用サーバー、ゲームコミュニティに近い場所を備えたゲーム用 VPS。.
  • AIとレンダリング: 高速な推論とレンダリングを実現するグラフィックスサーバー(GPU)。高NVMeと高スループットのネットワークを採用しています。.
  • 公開ウェブサイト: CDN、キャッシュ、画像の最適化に重点を置きます。.

出版前の最終チェックリスト

  • SSL が有効になってテスト済み
  • WP-Cronの代わりにReal Cron
  • スケジュールされたバックアップとテスト復元
  • アクティブ監視とアラート
  • Fail2BanとWAFが有効
  • オブジェクトキャッシュ(Redis)とOPcacheが有効
  • 静的ファイルとメディアオフロード用の CDN
  • 2FAでSSHアクセスを保護し、管理パネルを制限

結論

常時接続のWordPressサイトを構築するには、アーキテクチャ、セキュリティ、キャッシュ、監視、バックアップ戦略を適切に組み合わせる必要があります。高性能クラウドサーバー、CDN、DDoS対策、そして世界85か所以上の拠点への展開により、安定性、速度、そしてセキュリティを確保できます。.

よくある質問

あなたも気に入るかもしれない