apacheからnginxに移行したので、不要になった調査結果を削除しました
前回はgitのセルフホスティングを移行した話でしたが、
今回はwebサーバーの移行についてです。とはいえ、すでに移行自体もその説明もしちゃったのですが、今回は目的や動機などの背景部分や、不要になった調査結果の分析、、、でもしようかなと思います。まあ追加される事実もないので、読む価値ありません。
Webサーバーの選択
VALUE SERVERからConoHa VPSに移行したので、Webサーバにも選択肢が出てきました。
VALUE SERVERは当時Apache 2.2(2005-12-01~2017-07-11)という古い糞がこびりついたようなサーバーを使っていました。CentOS 6(2011年7月9日~2018年7月3日)だったし、とにかく絵に描いたような古いシステムをCentOS(Redhat)メンテナの腕力を借りて動かしていたような感じです。
ConoHa VPSに移行してからはOSも自由に選べたので、Ubuntu 20.04に変えました。サーバー版としては比較的パッケージバージョンが新しいディストリビューションだと思っています。言語もフレームワークもWebサーバーも自由に選んで組み合わせられることを考えると、Webサーバーはやはり軽量でアプリを直に動かさない窓口的な役割を担うリバースプロキシとして使えるサーバーがいいだろうと思いました。
apache 2.2について
古すぎて論外ですね
apache 2.4について
評価の観点というか軸は2つあります。
- phpが軽く速く動くこと
- 他のシステムと繋がりやすいこと
php
apache 2.4でphpを動かす方法は主に2つ
- php_modを使ってapacheプロセスにphp処理系を載せる
- cgiを使ってphpコマンドを叩く
1を使うと、速いですが、常駐プロセスになるのでメモリ的には重くなります。
2を使うと、速くないですが、常駐プロセスがないのでメモリ的には軽くなります。
今回のシステムはメモリも少ないのですが、CPUもショボいです。つまり、軽さも速さも大事です。リクエストが多い場合、重いとサーバーダウンなどの重篤な障害を起こします。ただ、このサーバー来訪者ほとんどいないので、並列/並行処理できる必要はあまりありません。単体処理でスワップさえ起こらなければ軽いとしてよいでしょう。すると、1.のphp_modかなぁという選択になります。
他のシステムとの連携
ようはリバースプロキシとか出来るか?という話ですが、mod_proxyを使えば出来ます。スレッドを使うことで1プロセスあたりの抱えられるリクエスト数も可変です。
nginxについて
php
php_fpmを使用し、fastcgi経由でphpリクエストを処理します。同時には1プロセスで1リクエストの常駐なので、php_modを使ったapacheと構成や特徴が似ています。ただfastcgiはcgiと名がついているものの、別ホストに転送して処理できる仕様で、実際nginxとは別コンテナでfpmを動かす点から、apacheよりほんの少し遅いかもしれません。
他のシステムとの連携
標準でリバースプロキシ出来ます。機能的にはapacheと変わりません。
どれがいいのか?
両軸ともどちらでも大差がありません。ただ軽量という観点ではnginxの方が優秀と言われており(個人的には設定次第だと思っている)、そういう意味では世間的にも最前面はnginxが多いと感じ、またnginxの方が新しいので、nginxに変えました。ようは流行りに乗っかってnginxにしただけです。自分で調べた結果では特別優劣はなく、他のwebサーバーだってなしではないと思います。
不要になった調査結果とは
apache2.2のmod_rewrite/setenvifの挙動確認結果ですね。smart git導入時にこの辺がネックになってVALUE SERVERでの設置が困難だったのです。今はgitリポジトリはgitea内で作成されているので、smart gitは使っていません。apache2.4ではまた結果が違う場合があるので、情報としてもVALUE SERVERくらいでしか役に立たない気がします。同じグループがやってるXREAでもapacheは2.4ですしね。現状apache2.2上で実際に試せるリンクがリンク切れになったので、リンクを削除しています。
まとめ
今回はapache2.2のディレクティブの細かい使い方についての記事で、リンク切れになっていた部分を破棄しました。
次回も引き続き「VALUE SERVER→ConoHa VPS移行作業で漏れた部分」をやっていこうと思います。
ディスカッション
コメント一覧
まだ、コメントがありません