Blogaomu

WEBアプリケーション開発とその周辺のメモをゆるふわに書いていきます。

WordBench埼玉に行ってきました

こんにちは!4/21に開催されたWordBench埼玉に参加してきました。WordBenchはWordPress(このブログでも使っているCMS)の勉強会で、各地域で開催されています。

WordBenchの参加は初めてでどのくらいのレベルなんだろうと不安でしたが、どちらかと言うと技術よりの話で参考になる話が多かったので良かったです。
ここからはトークセッションのメモと感想を書いて行きたいと思います。

長いので目次です。

メモ

トークセッション
1)ざっくり分かるDNSの基礎
松田さん @mzdakr

DNSのしくみ
クライアントがあるドメインをリクエストすると、まずキャッシュDNSサーバー→権威DNSサーバーに問い合わせする。
権威DNSサーバー→キャッシュDNSサーバー→クライアントの順にIPアドレスが返ってくる。
クライアントは返ってきたIPアドレスにアクセスする。
キャッシュDNSサーバーは問い合わせのあったドメインのレコードを持っていたら、直接クライアントにIPアドレスを返す

・Dozensの使い方
ナナピにDozensの使い方が載っている。
DNS管理サービス「Dozens」でレコード登録する方法 | nanapi [ナナピ]

TTL: DNSキャッシュの有効時間
最近は短くするのが主流。1〜2時間とか。
昔は24〜48時間とかだった。なので、サーバー移転でドメインの反映が1,2日かかるという話がある。
クラウドサーバーなど動的IPに対応するためにTTLを短くする必要が出てきた。

TYPE: CNAME は別のホストを関連付けることができる
TYPE: MX メールサーバーの関連付けができる

ワイルドカード
*.example.com とDNSに登録すると
www.example.com, dev.example.com, test.example.com など全て問い合わせると同じIPが返ってくる。

DNSサーバーで有名なのはbind
BIND | Internet Systems Consortium

DNSキャッシュサーバーのポイズニング
キャッシュサーバーの値を書き換える攻撃
ドメインに関連づいたIPアドレスが書き換わってしまう・・・。

2)速習マルチサイト
大曲さん @jim0912

WordPressマルチサイトの設計思想
個々のサイトのパフォーマンス確保。
各サイト横断的な情報の取得には向いていない
(もともとはブログホスティングWordPress.com向けに開発された)

・マルチサイトの使えそうなサイト
多言語サイト
定期開催のイベントサイト
地方組織などのサイト
ブログのホスティングのサイト

・注意点
プラグインによってはマルチサイトに対応していないものも
アクセスの多いサイトは不向き(処理が重くなる)

DNS設定
サブドメイン型ならワイルドカードで。
ホスト無しも設定しておくとよい

・サーバー設定
例)Apacheの設定で
ServerName magar.in
SeverAlias *.magar.in

WordPress設定
wp-config.phpに define( ‘WP_ALLOW_MULTISITE’, true ); を設定すると
管理メニューに ツール>ネットワークの設定 項目が表示される
wp-content/ にblogs_dirを作成 (サイト毎の画像が格納される)
wp-configに追加
.htaccessの書き換え
成功すると、ツールバーに「参加サイト」メニューが表示される

・DB
users, usermetasは全サイト共通
その他のテーブルはサイト毎に追加される

・マルチサイトのtips
Multisite Global Search
全サイト横断検索
(コンテンツの多いサイトだと、パフォーマンスは厳しいかも?)
HyperDB
サイト毎に参照するデータベースを変更できる
Network Sites Hierarchy
サイト間での階層構造を作ることができる

3)できることから始めるWordPress高速化
こもりまさあきさん @chiper
資料:
WordBemch Saitama vol.6 http://www.slideshare.net/gaspanik/wordbemch-saitama-vol6

ボトルネックを探す
オンラインの計測サービスを使うとよい(海外のサーバーだったりするので速度は目安)
ブラウザのアドオン
WordPress内部の処理を調べる DebugBarプラグイン開発やテーマ開発の時に便利

・解決策
プラグインを使わない?
キャッシュする
→js, css, 画像はブラウザキャッシュできる
→オブジェクトキャッシュ、DBへのクエリをキャッシュする
Apacheのmod_expiresで設定 ファイルタイプごとに設定できる
転送データ量を小さくする
→テキストファイルをgzipで圧縮
→Apaechのmod_deflate(mod_gzip)
HTTPリクエストを減らす
css/jsを結合する(ファイルをまとめる)
→画像のCSSスプライト
→サーバーの分散 物理的にサーバーを分けて(画像サーバーとか)並列でダウンロードできるようにする
→CDNを使う
DNSプリフェッチ

LT
1)hostsについて
加藤さん @yorozu
DNSサーバーが無い頃はhostsが代わりをしていた
DNSサーバーが使えない時や、反映されない時にDNSの代わりをしてもらうことができる。

2)WordPressでイベント運営
進藤さん @ryu_compin
ABCのイベント運営サイトをマルチサイトで作った
→毎回htmlを作るのはしんどいのでサイトをテンプレート化した

3)マルチサイトでブログポータル
西川さん @shinichiN
WordPressマルチサイト機能を使ってブログポータルを作ってみよう!
ころぐの中の人
クローズドブログSNS、サブディレクトリ型
管理画面のカスタマイズをした→どうやったんだろう、気になります!

4)公式テーマ登録への道
鳥山さん sysbird
普段使っているテーマをWordPress.orgに登録した!
登録のためのガイドラインがある
動作確認 : デバッグモード、Theme Unit Test

5)BuddyPressでコミュニティサイトを作ろう
星野さん @khoshino
BuddyPressとマルチサイトを使ってコミュニティサイトを作る
オープン型のSNS カスタマイズは必要

6)リクルートUI
中畑さん @nakachon
リクルートAPIリクルートの運営しているサイトのデータを取得している
リクルートUI:API出取得した情報を使いやすくするUI 検索フォームなど

7)マルチサイト用プラグイン
Webnistさん
Networks for WordPress
ドメインが別のマルチサイトを作る
Demo Data Creater
鬼太鼓

感想 {#2}

DNSWordPressマルチサイトについては仕事でも関わったことがあるのでいくらか知識はありましたが、DNSの仕組みや、マルチサイトに便利なプラグインなんかは知らなかったのでためになりました。WordPress高速化については、WordPressサイトだけではなくその他のサイトにも通じるような部分もありとても興味深かったです。セッション3本とLT7本という盛りだくさんな内容で満足しました。懇親会に行けなかったのは唯一心残りですが(笑)、また参加したいです。