CodeGym /コース /Docker SELF /仮想ホストとSSLを使ったWebサーバーの展開

仮想ホストとSSLを使ったWebサーバーの展開

Docker SELF
レベル 7 , レッスン 5
使用可能

仮想ホストとSSLを使ったWebサーバーの展開

1. 環境の準備

いよいよすべてをまとめる時が来たよ。今日は複数の仮想ホストが設定されたサーバーをデプロイして、HTTPSを接続するね。テストしたり、デバッグしたり、最終設定を行う予定だよ。

私たちの目標

このプロジェクトでは、1つのWebサーバーに2つのサイトをデプロイするよ:

  • example.com
  • test.com

それぞれのサイトには仮想ホストを設定し、HTTPSを接続する。デバッグと動作確認のステップも説明するよ。準備はいい?始めよう!

準備

始める前に、すべてが正しく設定されているか確認しよう:

  1. Webサーバー (NginxまたはApache) がすでにインストールされていることを確認する。

    • Nginxを使う場合:

      sudo apt-get update
      sudo apt-get install nginx
      
    • またはApacheを使う場合:

      sudo apt-get update
      sudo apt-get install apache2
      
  2. SSL用のCertbotパッケージがインストールされていること。

    • Nginxの場合:

      sudo apt-get install certbot python3-certbot-nginx
      
    • Apacheの場合:

      sudo apt-get install certbot python3-certbot-apache
      
  3. example.comとtest.comのドメイン用にDNSが設定されたサーバーにアクセスできるか、またはテスト用に/etc/hostsを使用できることを確認しよう。


2. 各サイト用ディレクトリの設定

まずはサイト用のディレクトリとファイルを作成しましょう。

ステップ 1: サイト用のフォルダを作成

sudo mkdir -p /var/www/example.com
sudo mkdir -p /var/www/test.com

ステップ 2: テスト用HTMLファイルを作成

各サイト用にシンプルなHTMLファイルを作ってみましょう:

example.com

sudo nano /var/www/example.com/index.html

コンテンツ:

<!DOCTYPE html>
<html>
<head>
    <title>example.comへようこそ</title>
</head>
<body>
    <h1>こちらはexample.comです</h1>
    <p>example.comへようこそ!サイトはSSLで保護されており正常に動作しています!</p>
</body>
</html>

test.com

sudo nano /var/www/test.com/index.html

コンテンツ:

<!DOCTYPE html>
<html>
<head>
    <title>test.comへようこそ</title>
</head>
<body>
    <h1>こちらはtest.comです</h1>
    <p>test.comへようこそ!サイトはSSLで保護されており正常に動作しています!</p>
</body>
</html>

3. バーチャルホストの設定

各サイト用の個別の設定ファイルを作成するよ。

ステップ 1: Nginxの設定

example.com

sudo nano /etc/nginx/sites-available/example.com

内容:

server {
    listen 80;
    server_name example.com www.example.com;

    root /var/www/example.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

test.com

sudo nano /etc/nginx/sites-available/test.com

内容:

server {
    listen 80;
    server_name test.com www.test.com;

    root /var/www/test.com;
    index index.html;

    location / {
        try_files $uri $uri/ =404;
    }
}

設定を有効化する:

sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo ln -s /etc/nginx/sites-available/test.com /etc/nginx/sites-enabled/

サーバーを再起動する:

sudo nginx -t
sudo systemctl reload nginx

ステップ 2: Apacheの設定

example.com

sudo nano /etc/apache2/sites-available/example.com.conf

内容:

<VirtualHost *:80>
    ServerName example.com
    ServerAlias www.example.com

    DocumentRoot /var/www/example.com
    <Directory /var/www/example.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

test.com

sudo nano /etc/apache2/sites-available/test.com.conf

内容:

<VirtualHost *:80>
    ServerName test.com
    ServerAlias www.test.com

    DocumentRoot /var/www/test.com
    <Directory /var/www/test.com>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

設定を有効化する:

sudo a2ensite example.com.conf
sudo a2ensite test.com.conf
sudo systemctl reload apache2

4. サイト用のHTTPSの設定

今からLet’s Encryptを使用して、両方のサイトのSSLを接続するよ。

sudo certbot --nginx
# またはApacheの場合:
sudo certbot --apache

プロセス中に、どのサイトの証明書を発行するかを選択するよう求められるよ。example.comtest.comを選択してね。Certbotは自動的にサーバーの設定を更新してくれるよ。


5. サイトの動作確認

設定が完了したら、以下のサイトを訪れてみてね。

作成したHTMLページが表示されるはずだよ。ブラウザのアドレスバーに「安全」(Secure)と表示されているか確認してね。


6. デバッグと確認

何かうまくいかなかった場合は、ログを確認してみて:

  • Nginxの場合:

    sudo tail -f /var/log/nginx/error.log
    
  • Apacheの場合:

    sudo tail -f /var/log/apache2/error.log
    

またはcurlを使ってアクセス可能か確認してみて:

curl -I http://example.com
curl -I https://example.com

7. 証明書の更新

Certbotはシステムのcronを使って証明書を自動的に更新するよ。確認するために手動で以下を実行できる:

sudo certbot renew --dry-run

このように、一歩一歩進んで、複数サイトとHTTPSをサポートするウェブサーバーの設定を完了したよね。空っぽのサーバーから仮想ホストとSSLが動作するまでの全工程を終えたばかりだ。これでサーバーが自分のサイトを世界に披露できる準備が整ったんだ。すごくない?

1
Опрос
LinuxでのWebサーバー作業,  7 уровень,  5 лекция
недоступен
LinuxでのWebサーバー作業
LinuxでのWebサーバー作業
コメント
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION