CentOS 8 Linux で Caddy Web サーバーをダウンロードして使用する方法

Apache や Nginx など、サーバーの世界を支配した Web サーバーがいくつかありますが、それら以外にも、Lightweight LiteSpeed Web サーバーや Microsoft IIS もあります。ただし、これらが人気のあるものであることは間違いありませんが、C などの新しいオープンソース プロジェクトもいくつかあります。アディウェブサーバー。

さて、キャディとは何でしょうか?

それはApache などの Web サーバーの代替オプションマイクロソフトⅡなど。まだあまり普及していませんが、開発者は開発に取り組んでいます。すべての一般的なプラットフォームをサポートするように設計されているため、Windows、macOS、Linux、BSD、Android、Solaris、32 ビット、x64、ARM、mips64 などで利用できます。つまり、クロスプラットフォームのサーバー側です。 HTTP/https リクエストを処理するアプリケーション。

Caddy には幅広い機能があります。

  1. 単一のダウンロード可能な実行可能ファイルで提供されるため、外部依存関係はありません。
  2. 何もインストールする必要はなく、ダウンロードした Caddy ディレクトリから使用を開始するだけです。
  3. Caddy Web サーバーに変更を発行した後は、1 つのコマンドでダウンタイムなしで再ロードできます。
  4. 暗号化署名されたパッケージ
  5. Dockerイメージ上で実行可能
  6. サーバーのダウンタイムなしでアップグレードが簡単
  7. Caddy Web サーバーはデフォルトで HTTPS を使用します。
  8. Caddy 機能はプラグインを使用して拡張できます。
  9. Community Edition と Enterprise Edition で利用できます。
  10. 複数のCPUコアをサポート
  11. 仮想ホストのサポート
  12. QUIC、プロキシ、FastCGI、リバース プロキシのサポート
  13. デフォルトで AES-GCM、ChaCha、ECC などの暗号化テクノロジー。
  14. デフォルトではTLS 1.3
  15. PCI 準拠、負荷分散。 WebSocket 接続のプロキシ、Gzip 圧縮が可能
  16. スケーラブルなど…

CentOS 8 に Caddy Web サーバーをインストールするチュートリアル

Ubuntu、Debian、RedHat、または CentOS 8 / Stream を使用しているかどうかは関係なく、Caddy はすべての Linux プラットフォームで利用できます。実行可能パッケージ ファイルをダウンロードして、Web アプリまたは Web サイトの開発を開始するだけです。ここで説明する手順は、どの種類の Linux ディストリビューションでも同様です。 CetnOS 7、Ubuntu 18.04 などの可能性があります。ただし、ここでは CentOS 8 を使用しています。

ステップ 1: CentOS 8 Linux サーバーにログインする

グラフィカル バージョンを使用している場合は、単にコマンド ターミナルを開きます。活動内容GNOME GUIのメニュー。その後、root としてログインするか、sudo 権限を持つユーザーが必要です。 sudoers グループに属するユーザーでログインしている場合は、以下のすべてのコマンドで sudo を使用する必要があります。


ステップ 2: Caddy Web サーバーをダウンロードしてインストールする

ここではコマンドラインを使用して Caddy サーバーをダウンロードしていますが、ユーザーはそのサーバーにアクセスできます。公式ページLinux または Windows や Android などの他のプラットフォームに直接ダウンロードします。

個人使用のためにインストールするライセンス付きの Caddy Web サーバーをダウンロードします。

sudo curl https://getcaddy.com | bash -s personal 

or
 
sudo wget -qO- https://getcaddy.com | bash -s personal 

Caddy をダウンロードして商用目的でインストールします (オプション)

sudo curl https://getcaddy.com | bash -s commercial 

個人ダウンロード コマンドの出力:

[root@DESKTOP-9OOKS69 caddy]# curl https://getcaddy.com | bash -s personal
   % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                  Dload  Upload   Total   Spent    Left  Speed
 100  7380  100  7380    0     0   3649      0  0:00:02  0:00:02 --:--:--  3651
 Downloading Caddy for linux/amd64 (personal license)…
 Download verification OK
 Extracting…
 Putting caddy in /usr/local/bin (may require password)
 Caddy v1.0.3 (h1:i9gRhBgvc5ifchwWtSe7pDpsdS9+Q0Rw9oYQmYUTw1w=)
 Successfully installed

バイナリのインストールまたは配置が成功したら、バイナリがどこにあるかを確認します。これを行うには、次のコマンドを使用するだけです。

which caddy

そして出力は次のようになります:

/usr/local/bin/caddy

ステップ 3: Caddy の所有権と権限を変更する

Caddy バイナリを root ユーザーおよびグループに割り当て、他のユーザーにはアクセス許可が制限されます。これは、Caddy の一部のプロセスが侵害された場合に、バイナリ ファイルやシステム コア ファイルを受け取ることができなくなるためです。

sudo chown root:root /usr/local/bin/caddy 

上記のコマンドは、root にのみ読み取り、書き込み、および実行の完全なアクセス権を与えますが、他のユーザーは読み取りと実行のみを行い、Caddy ディレクトリまたはそのコア ファイルに何も変更したり書き込んだりすることはできません。

sudo chmod 755 /usr/local/bin/caddy

ステップ 4: Caddy プロセスを低いポートにバインドする

ここでは、Caddy に完全な特権を与えずに特権ポットにバインドできるようにする setcap コマンドを使用します。

sudo setcap 'cap_net_bind_service=+ep' /usr/local/bin/caddy

ステップ 5: Caddy の www-data ユーザーを作成する

Apache または Nginx では、インストール中に root のアクセス権を持たない www-data ユーザーが自動的に作成されます。ただし、これは Caddy Web サーバーでは行われないため、手動で行う必要があります。

sudo adduser -r -d /var/www -s /sbin/nologin www-data
sudo groupadd -g www-data 

上記のコマンドでは、「」という名前のユーザーを追加しています。www-データ”。他のものを設定することもできます。ユーザーのデフォルトのディレクトリは次のようになります。/var/www、Webサイトのインストールに使用するため、これを実行しました。 root アクセス権を与えたくないので、あらゆる種類のシステムログインを防止したいので、次のようにします。/sbin/nologin を使用する上記のコマンドで。


ステップ 6: Caddy が Web サイトを提供するためのディレクトリを作成する

ここで、Caddyfile を保持するディレクトリを作成する必要があります。これは、ブラウザに表示するファイルの場所を Caddy Web サーバーに伝えるファイルです。たとえば、インストールしたい場合は、Caddy 上の WordPress, そのため、WordPress のファイルがどこにあるかをキャディに伝える必要があります。そのために、私たちは使用しますキャディファイルWordPress インストール ファイルのパスを指定します。

そこで、ここでは /etc の下にディレクトリを作成します。

 sudo mkdir /etc/caddy 

ここで、このディレクトリを www-data グループに追加する間、このディレクトリの所有権を root に維持するように変更します。したがって、Caddy サーバーは、キャディファイルこのディレクトリ内に存在します。

 sudo chown -R root:www-data /etc/caddy   

注記: 交換するwww-データ別の名前を作成した場合に備えて、上記のコマンドまたは今後のコマンドで作成したユーザーを使用します。


ステップ 7: SSL 用のディレクトリ

Caddy はデフォルトで https をサポートしているため、Caddy がインポートした Let's Encrypt 証明書を保存するディレクトリを作成する必要があります。

sudo mkdir /etc/ssl/caddy 

所有権とグループを変更する

sudo chown -R root:www-data /etc/ssl/caddy

上記ではセキュリティのために、SSL 証明書を保持する caddy ディレクトリの権限を変更しました。これにより、root ユーザーのみが完全な権利を持ち、他のユーザーは読み取りのみが可能になります。

sudo chmod 0770 /etc/ssl/caddy

ステップ 8: Caddyfile を作成する

ここで、caddy ディレクトリ内に、という名前の空のファイルを作成します。キャディファイルこれは、ファイルをホストしている Web サイトの場所を Caddy Web サーバーに伝えるために、今後のコマンドで使用します。

 touch /etc/caddy/Caddyfile 

ステップ 9: Web サイトファイルのディレクトリ

Apache や Nginx と同じように、Caddy 用のディレクトリも作成します。/var/www.Web サーバーで使用する Web サイト ファイルを保存する場所。

mkdir /var/www

上記の所有権を Caddy ユーザーに直接完全に変更します。私たちの場合、それは「」ですwww-データ' そしてあなたの場合、それはあなたが作成したものになりますステップ3この記事の。

Caddy が使用するユーザーに、Web ディレクトリの所有権と完全な権利を与えます。

  sudo chown www-data:www-data /var/www 

ステップ 10: Caddy Web サーバーのシステム サービスを作成する

デフォルトでは、毎回 caddy を実行するにはそのコマンド、つまり caddy を使用する必要があり、それを使用した後は同じ端末で他のコマンドを実行できません。したがって、Caddy Webサーバーのシステムサービスこれは、Apache や Nginx サービスと同様にバックグラウンドで実行されます。

sudo curl -s https://raw.githubusercontent.com/mholt/caddy/master/dist/init/linux-systemd/caddy.service -o /etc/systemd/system/caddy.service

ステップ 11: Caddy Service ファイル権限の変更

ここでは、Caddy サービスの権限を変更し、root のみに完全なアクセス権を与え、残りのユーザーは実行または読み取りのみを許可します。

sudo chmod 644 /etc/systemd/system/caddy.service

ステップ 12: キャディ サービスを開始する

システム サービスをリロードして、最新の追加情報を通知します。

systemctl daemon-reload

ステータスを確認します。

systemctl status caddy.service

上のスクリーンショットに示すような出力が得られた場合は、Caddy サービスが正常に作成されたことを意味します。


ステップ 13: システムのファイアウォールでポート 80 と 443 を開きます。

ブラウザを使用してローカル システムの外部にある Caddy Web サーバーにアクセスするには、ホストされている Web ページにアクセスするために接続できるように、HTTP および https プロトコルを一般公開する必要があります。

sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

ファイアウォールが実行されていない場合は、単に次のように入力します。

systemctl enable firewall-cmd
systemctl start firewall-cmd 

ステップ 14: Caddy Web サーバーをテストするためのデモ Web ページを作成する

作成した Web サーバーが正常に動作しているかどうかを確認するために、ここではテスト HTML Web ページを作成します。

sudo touch /var/www/index.html
sudo vi /var/www/index.html

プレス入れるキーボードのボタン。次の行をコピーして貼り付けるか、入力します…

 <h1>Caddy has been installed succefully using h2smedia tutorial</h1>

保存するには、ESCキーを押してから入力します:wqそして、入力ボタン


ステップ 15: Caddyfile を編集する

次に、Web ページがどこにあるのか、どのポートを使用するのかを Caddy Web サーバーに到達する方法を示しましょう。

sudo vi /etc/caddy/Caddyfile
:80 {
    root /var/www
}

ステップ 16: Caddy Web サービスを有効にして開始する

最後に、すべての設定が完了し、バックグラウンドで Caddy のサービスを有効にして実行します。

以下のコマンドはサービスを有効にし、システム起動時に自動的に開始できるようにします。

systemctl enable caddy.service 

次のコマンドでサービスを開始します。

sudo systemctl start caddy

同じステータスを確認してください

sudo systemctl status caddy

以下の出力が表示されれば、すべてOKです。

[root@localhost ~]# sudo systemctl status caddy
 ● caddy.service - Caddy HTTP/2 web server
    Loaded: loaded (/etc/systemd/system/caddy.service; disabled; vendor preset: disabled)
    Active: active (running) since Tue 2019-10-01 17:42:31 IST; 5s ago
      Docs: https://caddyserver.com/docs
  Main PID: 3807 (caddy)
    CGroup: /system.slice/caddy.service
            └─3807 /usr/local/bin/caddy -log stdout -agree=true -conf=/etc/caddy/Caddyfile -root=/va…
 Oct 01 17:42:31 localhost.localdomain systemd[1]: [/etc/systemd/system/caddy.service:41] Unknown…ce'
 Oct 01 17:42:31 localhost.localdomain systemd[1]: Started Caddy HTTP/2 web server.
 Oct 01 17:42:31 localhost.localdomain caddy[3807]: Activating privacy features… done.
 Oct 01 17:42:31 localhost.localdomain caddy[3807]: Serving HTTP on port 80
 Oct 01 17:42:31 localhost.localdomain caddy[3807]: https://
 Oct 01 17:42:31 localhost.localdomain caddy[3807]: 2019/10/01 17:42:31 [INFO] Serving https://
 Oct 01 17:42:31 localhost.localdomain caddy[3807]: 2019/10/01 17:42:31 [INFO][cache:0xc00008c5a0…ine
 Hint: Some lines were ellipsized, use -l to show in full.

ステップ 17: Web ページをテストします。

ローカルサーバー上にある場合は、GUIそれから、単に入力することができますhttps://ローカルホスト:80リモートサーバーの場合は、そのサーバーを使用しますhttps://ipアドレス:80Webブラウザで。

キャディ自動 TLS

ご存知のとおり、Caddy はユーザーが提供した電子メール ID を使用して Let's Crypt 経由で SSL 証明書を自動的に提供できます。したがって、それを再度設定するには、CaddyFile を編集します。

sudo vi /etc/caddy/Caddyfile

そして、ポート 80 を Web サイトで使用するドメイン名に置き換えます。その後、SSL 証明書のインストールに使用する電子メール ID も記載します。

h2sexample.com {
     root /var/www
     gzip 
     tls [email protected]
 }

交換してくださいh2sexample.comあなたのドメイン名と[メールで保護されています]あなたのメールアドレスと一緒に。 https を使用してアクセスすると、すべてがうまくいけば、安全な Web ページが表示されます。

その他の記事: