Nginxサーバーブロックは、Apache仮想ホストに相当します。これにより、ユーザーは同じサーバー上で多数のWebサイトをホストできる柔軟性が得られます。これは、さまざまなサーバーをセットアップしてさまざまなドメイン用に構成するのではなく、ウェブサイトをホストする費用効果の高いアプローチです。
このウォークスルーでは、Nginxサーバーブロックの構成を示します。その後、無料のSSLであるLet’sEncryptSSLを使用してWebサーバーを保護する方法を説明します。
前提条件
先に進む前に、Nginxがインストールされていることを確認してください。 CentOS8へのlNginxのインストールを説明する包括的なチュートリアルがあります。また、ドメイン名が仮想サーバーのパブリックIPアドレスを指していることを確認してください。これを確実にするには、ドメイン名ベンダーにアクセスし、サーバーのIPを指すようにAレコードを構成します。
ここで、IPアドレスは linuxtechgeek.infoというドメインを指しています。 このガイド全体で使用します。
ステップ1:ドメインのドキュメントルートを作成する
まず、ウェブサイトのファイルを保存するドメインのディレクトリを作成します。したがって、これを実行するには、以下のコマンドを実行します。
$ sudo mkdir -p /var/www/linuxtechgeek.info/html
デモの目的で、サンプルの index.htmlを作成します ファイル。
$ sudo vim /var/www/linuxtechgeek.info/html/index.html
次のHTML行を貼り付けます。
<html> <head> <title>Welcome to my domain.info</title> </head> <body> <h1>Hey fellaz!!.The server block is working.</h1> </body> </html>
もちろん、本文の内容はお好みに合わせて自由に編集してください。次に、権限の不具合を回避するために、ドメインのディレクトリの所有権を構成します。
$ sudo chown -R nginx /var/www/linuxtechgeek.info/
そして、示されているように権限を設定します。
$ sudo chmod -R 755 /var/www/linuxtechgeek.info/
素晴らしい!サーバーブロックファイルを構成しましょう。
ステップ2:Nginxサーバーブロックファイルを作成する
/etc/nginx/conf.dでNginxサーバーブロックファイルを構成します 次のようにディレクトリ。
$ sudo vim /etc/nginx/conf.d/linuxtechgeek.info.conf
次の構成を貼り付けます
server { listen 80; server_name linuxtechgeek.info www.linuxtechgeek.info; root /var/www/linuxtechgeek.info/html; index index.php index.html index.htm; access_log/var/log/nginx/linuxtechgeek.info.access.log; error_log /var/log/nginx/linuxtechgeek.info.error.log; }
保存して終了。完了したら、すべての構成が適切かどうかを確認します。
$ sudo nginx -t
出力から、すべてがうまく見えます。行ったすべての変更を適用するには、Nginxウェブサーバーを再起動します。
$ sudo systemctl restart nginx
そして、それが実行されていることを確認してください。
$ sudo systemctl status nginx
次に、Webサイトを参照すると、サーバーブロックのindex.htmlファイルに移動します。
http://domain-name.come
ステップ3:Let’sEncyrptSSLでNginxを保護する
サーバーブロックはすでに設定されていますが、Webサーバーはまだ暗号化されていません。 Webサーバーとの間で送受信される情報を保護するには、SSL証明書を使用してサイトを暗号化することが重要です。 SSL証明書は、サイトのGoogleランキングを強化し、顧客とのやり取りを促進します。
Let’s Encryptは、ユーザーが無料のSSL / TLS証明書を使用してサイトを取得し、保護できるようにする無料のグローバルCA(認証局)です。 Let’sEncryptからの無料のSSL証明書のインストールを自動化するCertbotをインストールします。
$ sudo dnf install certbot python3-certbot-nginx
インストールしたら、次のようにcerbotを実行して、Let’sEncryptSSL証明書をインストールします
$ sudo certbox --nginx
示されているプロンプトに従います。
ステップ3:証明書の更新を管理する
Let'sEncrypt証明書は最大90日間有効です。ただし、有効期限の20日前に通知が送信され、10日から最終日までさらに通知が送信されます。
次のコマンドを使用して、証明書を手動で更新できます。
$ sudo certbot renew
更新を自動化するには、新しいcronジョブを作成します。
$ crontab -e
この行を追加して、変更を保存します。
0 0 * * * /usr/bin/certbot renew > /dev/null 2>&1
以上です!これが、Let’s Encrypt SSLを使用してNginxサーバーブロックを構成し、Webサーバーを保護する方法です。