Ubuntu 18.04にNginxをインストールする方法[クイックスタート]

前書き

Nginxは、世界で最も人気のあるWebサーバーの1つであり、インターネット上で最大かつ最もトラフィックの多いサイトのホストを担当しています。 ほとんどの場合、Apacheよりもリソースにやさしく、Webサーバーまたはリバースプロキシとして使用できます。

このガイドでは、Ubuntu 18.04サーバーにNginxをインストールする方法について説明します。 このチュートリアルのより詳細なバージョンについては、How To Install Nginx on Ubuntu 18.04を参照してください。

前提条件

このガイドを始める前に、次のものが必要です。

  • Ubuntu 18.04サーバーと、sudo特権を持つ通常の非rootユーザー。 さらに、重要でないポートをブロックするには、基本的なファイアウォールを有効にする必要があります。 initial server setup guide for Ubuntu 18.04をフォローすることで、通常のユーザーアカウントを構成し、ファイアウォールを設定する方法を学ぶことができます。

アカウントを使用できるようになったら、非rootユーザーとしてログインして開始します。

[[step-1 -–- installing-nginx]] ==ステップ1-Nginxのインストール

NginxはUbuntuのデフォルトのリポジトリで利用できるため、aptパッケージシステムを使用してインストールできます。

ローカルパッケージインデックスを更新します。

sudo apt update

Nginxをインストールします。

sudo apt install nginx

[[ステップ2––ファイアウォールの調整]] ==ステップ2–ファイアウォールの調整

前提条件のサーバーセットアップチュートリアルに従った場合、UFWファイアウォールが有効になっています。 次のコマンドを使用して、使用可能なufwアプリケーションプロファイルを確認します。

sudo ufw app list
OutputAvailable applications:
  Nginx Full
  Nginx HTTP
  Nginx HTTPS
  OpenSSH

構成したトラフィックを引き続き許可する最も制限の厳しいプロファイルを有効にして、ポート80でのトラフィックを許可しましょう。

sudo ufw allow 'Nginx HTTP'

変更を確認します。

sudo ufw status
OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
Nginx HTTP                 ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx HTTP (v6)            ALLOW       Anywhere (v6)

[[step-3 -–- checking-your-web-server]] ==ステップ3–Webサーバーをチェックする

次のように入力して、systemd initシステムでサービスが実行されていることを確認します。

systemctl status nginx
Output● nginx.service - A high performance web server and a reverse proxy server
   Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
   Active: active (running) since Fri 2018-04-20 16:08:19 UTC; 3 days ago
     Docs: man:nginx(8)
 Main PID: 2369 (nginx)
    Tasks: 2 (limit: 1153)
   CGroup: /system.slice/nginx.service
           ├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
           └─2380 nginx: worker process

デフォルトのNginxランディングページにアクセスして、ソフトウェアがIPアドレスを介して適切に実行されていることを確認します。

http://your_server_ip

デフォルトのNginxランディングページが表示されます。

Nginx default page

[[step-4 -–- setting-up-server-blocks-recommended]] ==ステップ4–サーバーブロックの設定(推奨)

Nginx Webサーバーを使用する場合、server blocks(Apacheの仮想ホストと同様)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 example.comというドメインを設定しますが、replace this with your own domain nameを設定する必要があります。 DigitalOceanを使用したドメイン名の設定の詳細については、introduction to DigitalOcean DNSを参照してください。

-pフラグを使用して必要な親ディレクトリを作成し、example.comのディレクトリを作成します。

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

ディレクトリの所有権を割り当てます。

sudo chown -R $USER:$USER /var/www/example.com/html

umask値を変更していない場合は、Webルートのアクセス許可が正しいはずですが、次のように入力して確認できます。

sudo chmod -R 755 /var/www/example.com

nanoまたはお気に入りのエディターを使用して、サンプルのindex.htmlページを作成します。

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

内部に、次のサンプルHTMLを追加します。

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


    
        Welcome to Example.com!
    
    
        

Success! The example.com server block is working!

完了したら、ファイルを保存して閉じます。

/etc/nginx/sites-available/example.comに新しいサーバーブロックを作成します。

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

新しいディレクトリとドメイン名に合わせて更新された次の構成ブロックに貼り付けます。

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

server {
        listen 80;
        listen [::]:80;

        root /var/www/example.com/html;
        index index.html index.htm index.nginx-debian.html;

        server_name example.com www.example.com;

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

完了したら、ファイルを保存して閉じます。

ファイルからsites-enabledディレクトリへのリンクを作成して、ファイルを有効にします。

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

これで、2つのサーバーブロックが有効になり、listenおよびserver_nameディレクティブに基づいて要求に応答するように構成されました。

  • example.comexample.comおよびwww.example.comの要求に応答します。

  • default:他の2つのブロックと一致しないポート80での要求に応答します。

サーバー名を追加することで発生する可能性のあるハッシュバケットメモリの問題を回避するには、/etc/nginx/nginx.confファイルの単一の値を調整する必要があります。 ファイルを開きます。

sudo nano /etc/nginx/nginx.conf

server_names_hash_bucket_sizeディレクティブを見つけ、#シンボルを削除して、行のコメントを解除します。

/etc/nginx/nginx.conf

...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

構文エラーをテストします。

sudo nginx -t

Nginxを再起動して、変更を有効にします。

sudo systemctl restart nginx

これで、Nginxがドメイン名を提供しているはずです。 これをテストするには、http://example.comに移動します。ここで、次のようなものが表示されます。

Nginx first server block

結論

Webサーバーがインストールされたので、提供するコンテンツの種類と、より豊かなエクスペリエンスを作成するために使用するテクノロジに関する多くのオプションがあります。

より完全なアプリケーションスタックを構築したい場合は、how to configure a LEMP stack on Ubuntu 18.04に関するこの記事を確認してください。

Related