俺のブログサーバーをnginxに変えて、変わったこと。そして次の一手について。

Linux

このブログのWebサーバーをApacheからnginxに変えて2週間ほど経ちました。結果として、この変更は非常に良かったと感じています。そして、さらなる改善の方向性も模索中です。

まずはどうでも良いことですが、nginxの最大のメリットは、と、言われたら、間違いなく最初に出てくる理由は、「Apacheでは無いこと」です。apacheに不具合出たら終わるっていう、所謂ロックイン状態を脱却できるというのは、結構重要です。その辺もあって、nginxにしてみたわけですが、それ以上に実用的なメリットを感じています。

何が変わったか、と言うと、とにかく、ブログ編集が捗るようになりました。画像のアップロード、閲覧等が、すこぶる高速になりました。その他、管理画面の操作が全体的に一回り速くなっており、非常に快適になりました。

なぜこんなに速くなったんだろう、と考えると、理由は2つあります。

まず、管理画面をSSL化したことで、HTTP/2になった点があると思います。プロトコルレベルで通信が効率化されて、多数の画像サムネイルの読み込みや、js、cssの読み込みが速くなり、結果、快適になったんだと思います。画像アップロードも速いです。これは多少、期待はしていたところですが、正直こんなに違うとは思っていませんでした。

そしてもう一つ。このサーバーは全コンポーネントをdockerコンテナで分離して構成しているのですが、今回、nginxのコンテナは、CentOS 7イメージで、最新バイナリを動かしています。おそらくこれも、高速化に寄与していると思います。dockerコンテナ構成のなせる業です。

結局、「新しいものは良い」という、オープンソースの定石が功を奏しているのではないかと思います。

さて、じゃぁ次はどうするか、ですが・・・。

その1。今考えてる一つの構成変更案に、ベースとなっているVPSのOSをCentOS 7か、CoreOSか、要するにカーネルバージョンの新しいものにアップデートすることを検討しています。ただ、これにはデメリットもあって、若干考え中です。

まず、CentOS 7にする場合、現状のCentOS 6からの普通のマイグレーションになるため、比較的現実的な案だと思っています。ただ、どうにもdockerとの相性がまだイマイチピンときていません。理由はfirewalldにあります。

dockerのネットワーク制御は、基本的にnatベースで、iptablesのchainを利用した構成になっています。コンテナを起動するときにexposeすることで、TCPポートが公開されるという動きです。CentOS 7でも、当然同じ動きをするのですが、これがfirewalldの知らないところで行われるというところが気になっています。

firewalldの役割ですが、要するにLinuxのfirewall設定をwrappingして、より論理的な設計に近い設定を実現しようとするものです。ただ、まだ私の理解が不十分なだけかもしれませんが、firewalldの設定の表現力って、iptablesのすべての機能を網羅しきれていないように感じています。実際、dockerのexpose設定を、firewalldは検知してくれないし、当然、dockerもfirewalldと協調して動いてはくれていません。

firewalldを停めてしまえば良いのですが、それが正しいか、というと、悩ましいところで。これを未だ検証中って感じです。「カーネルが新しいCentOS 6」として使えば、まぁ、解決しそうなんですが。

じゃぁCoreOSで良いかというと、これも微妙。CoreOSはセキュアでシンプルで、外部攻撃の危険性も低いということは分かるんですが、CoreOSで例えばVPNを張るとか、メールサーバーにするとか、考えて行くと、やはりそこは、CentOSのような「柔軟な箱」のほうが、使いやすいところもあります。

CoreOSがdocker環境として有利なところは、layerdfsがデフォルトで使えるとか、いろいろあるんですが、普段使いを考えると悩ましいところです。複数台マシンがあれば最適ソリューションとして解決できるような気がしています。

という感じで、ホストOS変更は、決め手に欠ける状態です。

その2。他のコンテナもCentOS 7イメージにしてしまうという案。これはアリかな、と思っています。PHPやMariaDBはCentOS 7ベースにすることで、性能向上も見込めるかな、と。これは比較的手間暇もかからなそうなので、近日実行しようかと考え中です。

そんな感じで、次の構成変更は考え中状態です。おうちサーバーでいろいろ検証中。こうやって検証している時が一番楽しいのかな、って気もしていますがね。

コメント

タイトルとURLをコピーしました