apacheからnginxに移行したので、不要になった調査結果を削除しました

2021年6月17日

前回は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つあります。

  1. phpが軽く速く動くこと
  2. 他のシステムと繋がりやすいこと

php

apache 2.4でphpを動かす方法は主に2つ

  1. php_modを使ってapacheプロセスにphp処理系を載せる
  2. 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移行作業で漏れた部分」をやっていこうと思います。

未分類apache,nginx

Posted by first_user