当社はIT技術のオンライン教育を得意としたセミナー専門会社です。 | 一戸英男

ITエンジニアの技術力UPをお約束します。

Caddy 高速WEB サーバ(http2 quic対応) on CentOS7

http2対応の高速サーバを今回扱ってみる。このサーバはGo言語で開発されたWEBサーバです。導入にはコンパイルから行う場合はGo言語開発環境が必要ですが
バイナリーから入れるのであれば、特にGo言語開発環境は必要ありません。導入方法は幾つかやり方があります。一番簡なのはCentOS7の場合ならepelレポジトリー
から導入するのが簡単です。今回はこのサーバを理解するため少し手間がかかるバイナリーダウンロードから導入する方法を紹介します。
尚、今回は既存のサイトをcaddyで設置するやり方ですが、新規サイトであればSSL接続の鍵の取得などを無償のLet’s Encryptから自動取得してくれます。通信スレッドはマルチスレッドタイプです。わかりやすい。※現在既にバージョンがCaddy V2になってますので設定の記述変更がかなりあります。後半の記事に最新インストール情報があります。また最新設定がここに最新設定方法がありますを参考にしてください。

バイナリーパッケージのダウンロード

バイナリーパッケージを配置し実行環境を作る。

caddy起動をsystemdに登録する

caddyサーバの15,16行目の実行ユーザとグループを指定します。
22行目を編集します。-quic追加とcaddyプロセスログファイルの出力先を変更します。

caddy設定ファイルを作成する

www.testserv.netでhttps接続のListenや設定情報は以下のように行います。下記はWORDPRESSの場合の記述例になります。
予め、selinuxはOFFにしておきましょう。caddyは比較的デバッグ情報が寡黙の傾向にあるのでくだらないことで悩まず最初は「setenforce 0」で無効。 きちんとWEBサーバとして動いたら、「setenforce 1」で影響がないか確認すると良いと思います。 尚、この設定でQualisのSSLテスト評価で「A+」取得できました。

php-fpmの設定

caddyを起動する

トラブルシューティング

うまくcaddyが起動できていない場合は、おおよそlogのディレクトリパーミッション、SSL鍵のディレクトリパーミッションが原因のケースが多い。caddyユーザに設定してサーバを起動することは、ログディレクトリがデフォルトでrootユーザ、rootディレクトリならば、パーミッションやグループの検討の余地が必要。本格的にやるならばログを開放するのは危険なので/caddy/logディレクトリ等を作った方が良いのかもしれないと思います。 あるいはログファイルなら予め0サイズのログファイル名をtouchコマンドで作っておくことをお勧めする。 「journalctl -xe」を実行して調べてみると良い。また、firewalldやiptablesでportが開放されているかチェックし、開放されてなければ該当portをオープンにしましょう。

※まだまだ発展途上なところがありますが、個人的には大変気に入りました。設定がシンプルで少ない設定で動かせるところが良いと思います。当社でもApache2.4からこのサーバに切り替えて使っています。

最新yumパッケージインストール for CentOS7/RHEL7

最新yumパッケージインストール for CentOS8/RHEL8