Nginx を使用して個人の Web サイトを構築するための詳細なチュートリアル

目次

序章

環境整備

ステップ 1: Nginx をインストールする

ステップ 2: Nginx を構成する

ステップ 3: Web サイトのファイルを作成する

ステップ 4: ウェブサイトにアクセスする

高度な設定

HTTPS 暗号化を使用する

Certbot をインストールする

SSL 証明書を取得する

HTTPS を有効にするように Nginx を構成する

仮想ホストの構成

DDoS 攻撃を防ぐ

制限リクエスト率

接続速度を制限する

要約する


序章

Nginxは、メモリ使用量が少なく、同時処理能力が高く、軽量であるという特徴を持ち、インターネットで広く使用されている高性能なWebサーバーソフトウェアです。このチュートリアルでは、Nginx を使用して、単純な HTML ベースの個人用 Web サイトを構築します。

環境整備

このチュートリアルを開始する前に、次のソフトウェアがインストールされていることを確認してください。

ニンクス

テキスト エディター (例: Notepad++、Sublime Text、Atom など)

また、コマンド ラインで必要なことを実行できるように、Linux の基本的な操作とコマンドについても知っておく必要があります。

ステップ 1: Nginx をインストールする

Ubuntu システムでは、次のコマンドを使用して Nginx をインストールできます。

sudo apt update 
sudo apt install nginx

インストールが完了したら、次のコマンドを使用して、Nginx が正常にインストールされたかどうかを確認できます。

nginx -v

インストールが成功すると、Nginx のバージョン情報が表示されます。

ステップ 2: Nginx を構成する

Nginx の構成ファイルは /etc/nginx/nginx.conf にあり、任意のテキスト エディターで編集できます。このチュートリアルでは、nano エディターを使用します。

sudo nano /etc/nginx/nginx.conf

開いたファイルには、次のものがあります。

http { 
    ...
}

個人の Web サイトを構成するには、http ブロック内に以下を追加する必要があります。

server { 
    listen 80; 
    server_name your_domain.com; 
    root /var/www/your_domain.com; 

    index index.html; 

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

その中で、listen はリスニング ポート番号を指定します。ここではデフォルトのポート 80 を使用します。server_name は Web サイトのドメイン名または IP アドレスを指定します。your_domain.com を独自のドメイン名または IP アドレスに置き換える必要があります。root はルートを指定します。ここでは、/var/www/your_domain.com に設定します。このディレクトリを作成し、そこに Web サイト ファイルを配置する必要があります。index は、デフォルトのインデックス ファイルを指定します。ここでは、index.html に設定します。場所リクエストの URL マッチング ルールを指定します。ここでは、すべてのリクエストを静的ファイルに向け、404 エラーを返します。

完了したら、次のコマンドで構成ファイルを保存して終了します。

Ctrl + X

入力

次に、Nginx 構成ファイルが正しいことをテストする必要があります。次のコマンドを使用します。

sudo nginx -t

構成ファイルにエラーがない場合は、次の出力が表示されます。

nginx: configuration file /etc/nginx/nginx.conf test is successful

最後に、次のコマンドで Nginx を再起動して、新しい構成を有効にします。

sudo systemctl restart nginx

ステップ 3: Web サイトのファイルを作成する

前のステップで、Web サイトのルート ディレクトリを /var/www/your_domain.com として指定しました。次に、このディレクトリに Web サイト ファイルを書き込む必要があります。たとえば、次の内容を含む index.html というファイルを作成できます。

<!DOCTYPE html> 
<html> 
<head>
    <title>My Personal Website</title> 
</head> 
<body>          
    <h1>Welcome to My Personal Website</h1>  
    <p>Here you can learn more about me and my work.</p> 
</body> 
</html>

ファイルを保存して終了したら、次のコマンドを使用して、Web サイトのファイルが Web サイトのルート ディレクトリに正しく配置されていることを確認できます。

ls /var/www/your_domain.com

Web サイト ファイルが正しく配置されている場合は、index.html ファイルの情報が表示されます。

ステップ 4: ウェブサイトにアクセスする

すべての構成と書き込みが完了したので、ブラウザーを使用して個人の Web サイトにアクセスできます。ドメイン名または IP アドレスをブラウザーに入力すると、作成した Web サイトのコンテンツが表示されるはずです。

おめでとうございます。Nginx を使用して、簡単な HTML ベースの個人用 Web サイトを正常に構築できました。Web サイトでは、HTML、CSS、JavaScript などのテクノロジを使用して、よりリッチなコンテンツと機能を設計および実装できます。このチュートリアルがお役に立てば幸いです。

高度な設定

上記の手順では、Nginx を使用して基本的な静的 Web サイトを構築する方法を示しました。ただし、より複雑なサイトでは、より多くの構成とセットアップが必要になる場合があります。ここでは、Nginx を最大限に活用するための高度な設定について説明します。

HTTPS 暗号化を使用する

ユーザーのプライバシーが関係する Web サイトでは、HTTPS 暗号化を使用することが非常に重要です。ここでは、Nginx で HTTPS を有効にする方法を示します。

まず、サーバーに SSL 証明書をインストールする必要があります。多くの商用 SSL 認証局から証明書を購入できますが、個人の Web サイトの場合は、無料の Let's Encrypt SSL 証明書を使用できます。Certbot ツールを使用して、Let's Encrypt SSL 証明書を取得してインストールする方法を見てみましょう。

Certbot をインストールする

次のコマンドを使用して、Certbot を Ubuntu にインストールできます。

sudo apt-get install certbot python3-certbot-nginx

SSL 証明書を取得する

Certbot をインストールしたら、次のコマンドで SSL 証明書を取得できます。

sudo certbot --nginx -d your_domain.com

上記のコマンドでは、your_domain.com を自分のドメイン名に置き換える必要があります。Certbot は、Nginx 構成を介してドメイン名を自動的に検出し、SSL 証明書を生成します。完了すると、/etc/letsencrypt/live/your_domain.com/ ディレクトリの下に証明書ファイルが見つかります。

HTTPS を有効にするように Nginx を構成する

次に、Nginx 構成ファイルで HTTPS を有効にする必要があります。/etc/nginx/sites-available/your_domain.com ファイルで、サーバー セクションに次の 2 行を追加します。

listen 443 ssl; 
ssl_certificate /etc/letsencrypt/live/your_domain.com/fullchain.pem; 
ssl_certificate_key /etc/letsencrypt/live/your_domain.com/privkey.pem;

上記の構成で、ssl_certificate と ssl_certificate_key はそれぞれ、前に取得した SSL 証明書とキー ファイルの場所を指定します。

最後に、HTTP リクエストを HTTPS にリダイレクトする必要があります。サーバー セクションに次の構成を追加します。

server {   
    listen 80;         
    server_name your_domain.com; 
    return 301 https://$server_name$request_uri; 
}

完了したら、次のコマンドを使用して Nginx 構成をリロードします。

sudo systemctl reload nginx

Web サイトで HTTPS 暗号化が有効になりました。ブラウザで https://your_domain.com にアクセスすると、HTTPS が有効になっていることがわかるはずです。

仮想ホストの構成

同じサーバーで複数の Web サイトを実行している場合は、仮想ホストを構成して、各 Web サイトが正しく実行されるようにする必要があります。Nginx では、サーバー ブロックを使用して仮想ホストを構成できます。

仮想ホスティングとは、異なるドメイン名または IP アドレスを使用して、同じサーバー上で異なる Web サイト サービスを提供することを指します。Nginx では、仮想ホストを構成することで、複数の Web サイトをデプロイできます。

/etc/nginx/sites-available/ ディレクトリの下に仮想ホスト構成ファイルを作成できます。ファイルの命名形式は {domain}.conf です。{domain} はバインドするドメイン名です。たとえば、Web サイトを example.com ドメイン名にバインドする場合は、example.com.conf というファイルを作成できます。

そのファイルでは、次の構文を使用して仮想ホストを定義できます。

server { 
    listen 80; 
    listen [::]:80; 
    server_name example.com www.example.com; 
    root /var/www/example.com/html; 
    index index.html; 
    access_log /var/log/nginx/example.com.access.log; 
    error_log /var/log/nginx/example.com.error.log; 

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

上記の構成では、example.com という仮想ホストを定義しました。仮想ホストはポート 80 でリッスンし、example.com と www.example.com の 2 つのドメイン名を使用してアクセスします。仮想ホストのファイル ルート ディレクトリは /var/www/example.com/html、デフォルト ドキュメントは index.html、アクセス ログとエラー ログは /var/log/nginx/example.com.access に格納されます。 .log および /var それぞれ /log/nginx/example.com.error.log.

仮想ホストのロケーション ブロックは、/ パスがアクセスされたときに何が起こるべきかを定義します。上記の構成では、リクエストを $uri または $uri/ に転送し、リクエストが見つからない場合は 404 エラーを返します。

仮想ホストの構成が完了したら、ln コマンドを使用して /etc/nginx/sites-enabled/ ディレクトリへのシンボリック リンクを作成する必要があります。このディレクトリには、Nginx サーバーが実際に使用する仮想ホスト構成ファイルが含まれています。

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

次に、Nginx サーバー構成ファイルをリロードして有効にします。

sudo systemctl reload nginx

example.com または www.example.com にアクセスして、Web サイトにアクセスできるようになりました。

以上が仮想ホストの設定方法の紹介です。また、HTTPS を使用して Web サイトを保護し、さらに安全にすることもできます。次のセクションでは、SSL 証明書を使用して HTTPS を有効にする方法について説明します。

DDoS 攻撃を防ぐ

DDoS 攻撃は、攻撃者が複数のコンピューターを使用して標的のサーバーに大量の要求を送信し、サーバーを使用不能にする一般的なネットワーク攻撃です。Nginx では、制限リクエスト レートと接続レートを使用して DDoS 攻撃を防ぐことができます。

制限リクエスト率

リクエスト レートを制限することで、攻撃者が大量のリクエストを送信してサーバー リソースを消費することを防ぎます。Nginx の limit_req モジュールを使用して、リクエスト レートを制限できます。

http ブロックに次の構成を追加します。

limit_req_zone $binary_remote_addr zone=one:10m rate=1r/s;

上記の構成では、クライアントの IP アドレスによって区別される one という要求制限ゾーンを定義しました。リクエスト レートは 1 秒あたり 1 件に制限されています。

次に、仮想ホストでリクエスト レート制限を有効にする必要があります。仮想ホストのサーバー ブロックに次の構成を追加します。

limit_req zone=one burst=5;

上記の構成では、リクエスト制限ゾーン 1 を仮想ホストに適用し、バースト パラメータを 5 に設定します。バースト パラメータは、許可される瞬間的なリクエストの最大数を指定し、この値を超えるリクエストは拒否されます。

接続速度を制限する

リクエスト レートを制限するだけでなく、Nginx の limit_conn モジュールを使用して接続レートを制限することもできます。このモジュールは、各 IP アドレスからの同時接続数を制限できるため、攻撃者が過剰な接続リソースを使用するのを防ぐことができます。

http ブロックに次の構成を追加します。

limit_conn_zone $binary_remote_addr zone=addr:10m;

上記の構成では、クライアントの IP アドレスによって識別される addr と呼ばれる接続制限ゾーンを定義しました。接続制限領域のサイズを10MBに設定しました。

次に、仮想ホストでレート制限接続を有効にする必要があります。仮想ホストのサーバー ブロックに次の構成を追加します。

limit_conn addr 10;

上記の構成では、接続制限ゾーン addr を仮想ホストに適用し、最大接続数を 10 に設定します。

要約する

このチュートリアルでは、Nginx を使用して個人の Web サイトを構築する方法について説明します。最初に Nginx をインストールし、次に仮想ホストと SSL 証明書を構成しました。最後に、制限リクエスト レートと接続レートを使用して DDoS 攻撃を防ぐ方法について説明しました。

このチュートリアルを通じて、Nginx を使用して個人の Web サイトを構築する方法を理解し、いくつかの基本的な Nginx 構成スキルを習得する必要があります。ご不明な点がございましたら、お気軽にコメント欄にメッセージを残してください。

おすすめ

転載: blog.csdn.net/m0_61789994/article/details/129183854