You are currently viewing traefikを利用して複数wordpressを1台のサーバに構築する

traefikを利用して複数wordpressを1台のサーバに構築する

今まで1つのwordpressで管理していたブログを3つに分離することにしました
昔運営していたブログ、趣味用のバイクブログ、そしてお仕事アウトプット用のテックブログの3つになります。

もちろん、一つのwordpressでカテゴリやタグなどを利用して記事を分けることを考えましたが、
趣味のバイクブログ:写真中心にしたい
お仕事ブログ:文字中心にしたい
ということでブログの方向性も異なるため、それぞれ別サイトとして運営することにしました

wordpressのマルチサイト機能を利用しなかった理由

wordpressには「マルチサイト」という機能があり、1つのwordpressで複数サイトが運営できる機能があります

WordPressマルチサイト徹底解説(WordPressネットワークについて知っておくべきすべて)

ただ、以下の理由で今回はwordpressのマルチサイトは利用せず、独立したwordpressで運営することにしました

・「All-in-One WP Migration」が、マルチサイトには対応していないこと
・運営中のwordpressをマルチサイトに変更すると、利用したかった機能が利用できなかったため(プラグインか、テーマが切り替えられなかった気がする・・・)

1台のサーバで複数wordpressを運営するには

運営するwordpressが一つであれば、docker-composeでサクッと環境ができあがるのですが、今回は複数wordpressを立ち上げるのでそうも行きません。
最近社内で「traefik」が流行り始めたので、こちらを利用することにしました

traefikとは、Go言語で作成されたリバースプロキシ兼ロードバランサーです。世間的にはコンテナのルーティング管理に利用されている印象を受けます。

個人的に使ってみて、良いなと思った点は以下の通り
・traefik自体の準備が簡単(traefik自体もDokerが準備されているので)
・設定がシンプル & ルーティングは動的追加ができるので、設定変更後の再起動が少なくてすむ
・Let’s Encryptの連携機能が準備されており、SSL対応が簡単(それぞれのwordpressにsslを設定しなくてもいい)

サーバの構成

今回は以下のような構成でサーバ(コンテナ)を構築します

traefik、各ブログ、MySQLはいずれもDockerコンテナになります

設定ファイルについて

上記構成を構築する設定ファイルはGitHubにあげていますので参考にしてください
https://github.com/sheltie-fusafusa/MultipleWPWithtraefik

上記設定ファイルを利用する場合、以下の注意点があります
・事前にDokerネットワークを作成しておきます(コマンド例:docker network create –subnet=192.168.1.0/24 traefik)
・.envファイルは共通なので、各wordpressフォルダに設置する必要があります

終わりに

traefikを利用すれば1台のサーバ内に複数環境を立ててコンテナを使い分けることが簡単に出来ます。
これなら趣味開発であまりサーバにお金をかけられなくても1台のサーバの中に色々なアプリケーションを詰め込めますね
ただ、traefikで構築した構成では、traefikそのものが単一障害点となるため、こちらの解消方法があるのかは別途調査が必要です

コメントを残す