序章

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

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

前提条件

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

  • Ubuntu18.04サーバーとsudo権限を持つ通常の非rootユーザー。 さらに、必須ではないポートをブロックするには、基本的なファイアウォールを有効にする必要があります。 Ubuntu 18.04 初期サーバーセットアップガイドに従って、通常のユーザーアカウントを構成し、ファイアウォールをセットアップする方法を学ぶことができます。

利用可能なアカウントがある場合は、root以外のユーザーとしてログインして開始します。

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

NginxはUbuntuのデフォルトのリポジトリで利用できるため、 apt 包装システム。

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

  1. sudo apt update

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

  1. sudo apt install nginx

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

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

  1. sudo ufw app list
Output
Available applications: Nginx Full Nginx HTTP Nginx HTTPS OpenSSH

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

  1. sudo ufw allow 'Nginx HTTP'

変更を確認します。

  1. sudo ufw status
Output
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere Nginx HTTP ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) Nginx HTTP (v6) ALLOW Anywhere (v6)

ステップ3–Webサーバーを確認する

に確認してください systemd 次のように入力して、サービスが実行されていることを確認するinitsystem。

  1. 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 Webサーバーを使用する場合、サーバーブロック(Apacheの仮想ホストと同様)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 example.com というドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。 DigitalOceanを使用したドメイン名の設定の詳細については、 DigitalOceanDNSの概要を参照してください。

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

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

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

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

変更していない場合は、Webルートの権限が正しいはずです。 umask 値ですが、次のように入力して確認できます。

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

サンプルを作成する index.html 使用するページ nano またはお気に入りの編集者:

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

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

/var/www/example.com/html/index.html
<html>
    <head>
        <title>Welcome to Example.com!</title>
    </head>
    <body>
        <h1>Success!  The example.com server block is working!</h1>
    </body>
</html>

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

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

  1. 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 ディレクトリ:

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

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

  • example.com:のリクエストに対応します example.comwww.example.com.
  • default:ポート上のすべての要求に応答します 80 他の2つのブロックと一致しません。

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

  1. sudo nano /etc/nginx/nginx.conf

を見つける server_names_hash_bucket_size ディレクティブを削除し、 # 行のコメントを解除する記号:

/etc/nginx/nginx.conf
...
http {
    ...
    server_names_hash_bucket_size 64;
    ...
}
...

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

  1. sudo nginx -t

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

  1. sudo systemctl restart nginx

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

結論

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

より完全なアプリケーションスタックを構築したい場合は、 Ubuntu18.04でLEMPスタックを構成する方法に関するこの記事を確認してください。