開発運用

Nginxのインストールと設定ガイド

Nginxは、高性能で軽量なWebサーバーおよびリバースプロキシサーバーとして広く使用されています。その柔軟性と効率性により、特にトラフィックの多いウェブサイトやアプリケーションで好まれています。本記事では、Nginxをサーバーにインストールし、設定する方法を詳細に解説します。初心者から上級者まで、Nginxを効果的に利用するための手順とポイントを押さえていきます。

1. Nginxのインストール

まず、Nginxをインストールする方法から始めます。インストールは主にLinuxディストリビューションによって異なりますが、ここではUbuntuを例に説明します。

Ubuntuの場合

  1. パッケージリストの更新

    bash
    sudo apt update
  2. Nginxのインストール

    bash
    sudo apt install nginx
  3. インストールの確認

    Nginxが正しくインストールされたかどうかを確認するため、次のコマンドでNginxのバージョンをチェックします。

    bash
    nginx -v
  4. Nginxの起動と有効化

    インストールが完了したら、Nginxを起動します。

    bash
    sudo systemctl start nginx

    Nginxをシステム起動時に自動的に開始するよう設定するには、次のコマンドを実行します。

    bash
    sudo systemctl enable nginx
  5. ファイアウォールの設定

    Nginxがファイアウォールでブロックされている場合、HTTPとHTTPSトラフィックを許可するために次のコマンドを実行します。

    bash
    sudo ufw allow 'Nginx Full'

    これで、Nginxはサーバー上で稼働する準備が整いました。ブラウザでサーバーのIPアドレスを入力することで、Nginxのウェルカムページを確認できます。

2. Nginxの設定

Nginxの設定は、主に/etc/nginx/nginx.conf/etc/nginx/sites-available/ディレクトリ内の設定ファイルで行います。ここでは、基本的な設定方法について説明します。

2.1 基本的な設定ファイルの場所

  • nginx.conf: メインの設定ファイルです。
  • default.conf: 通常のサイト設定を行うファイルです。/etc/nginx/sites-available/に配置されます。

2.2 サーバーブロック(仮想ホスト)の設定

Nginxでは、仮想ホスト(サーバーブロック)を使って、複数のドメインを1台のサーバーで管理できます。例えば、example.comexample.orgという2つのドメインを設定したい場合、以下の手順で行います。

  1. 新しいサーバーブロックファイルの作成

    /etc/nginx/sites-available/ディレクトリに新しい設定ファイルを作成します。

    bash
    sudo nano /etc/nginx/sites-available/example.com
  2. サーバーブロックの設定

    作成したファイルに以下の内容を記述します。

    nginx
    server { listen 80; server_name example.com www.example.com; root /var/www/example.com/html; index index.html; location / { try_files $uri $uri/ =404; } }
  3. シンボリックリンクの作成

    新しいサーバーブロックをsites-enabledディレクトリにシンボリックリンクとして有効化します。

    bash
    sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
  4. Nginxの設定のテストと再起動

    設定ファイルにエラーがないかテストします。

    bash
    sudo nginx -t

    エラーがなければ、Nginxを再起動して設定を反映させます。

    bash
    sudo systemctl restart nginx

これで、example.comにアクセスすると、指定したディレクトリ内のコンテンツが表示されるようになります。

3. SSLの設定

セキュアな接続(HTTPS)を提供するために、SSL証明書を設定することが重要です。ここでは、Let’s Encryptを使用して無料のSSL証明書を取得し、Nginxに設定する方法を説明します。

3.1 Certbotのインストール

Let’s EncryptのSSL証明書を取得するために、Certbotというツールをインストールします。

bash
sudo apt install certbot python3-certbot-nginx

3.2 SSL証明書の取得

Certbotを使って、Nginx用のSSL証明書を取得します。

bash
sudo certbot --nginx -d example.com -d www.example.com

このコマンドで、SSL証明書が自動的に取得され、Nginxの設定に組み込まれます。

3.3 証明書の自動更新設定

Let’s Encryptの証明書は90日ごとに更新する必要があります。Certbotには自動更新機能があり、cronジョブとして設定できます。

bash
sudo systemctl enable certbot.timer

これで、SSL証明書が自動的に更新されます。

4. 高度な設定

Nginxは非常に柔軟で、詳細な設定を行うことができます。以下は、高度な設定の一部です。

4.1 リバースプロキシの設定

Nginxをリバースプロキシとして設定することも可能です。例えば、バックエンドのアプリケーションが別のポートで動作している場合、Nginxがそのリクエストを処理してバックエンドに転送することができます。

nginx
server { listen 80; server_name example.com;

Back to top button