UbuntuにNginxをインストールする方法

0 株式
0
0
0
0

導入

Nginxは世界で最も人気のあるウェブサーバーの一つであり、インターネット上で最大規模かつ最もアクセス数の多いウェブサイトのホスティングを担っています。ウェブサーバーやリバースプロキシとして使用できる軽量な選択肢です。.

このガイドでは、Ubuntu 20.04 サーバーに Nginx をインストールし、ファイアウォールを設定し、Nginx プロセスを管理し、単一のサーバーから複数のドメインをホストするためのサーバー ブロックを設定する方法について説明します。.

前提条件
  • このガイドを開始する前に、サーバー上に sudo 権限を持つ通常の非 root ユーザーを設定する必要があります。.
  • Ubuntuサーバーを購入するには クリック やれよ。.

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

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

このセッションではaptパッケージングシステムを使うのは初めてなので、最新のパッケージリストにアクセスできるようにローカルパッケージディレクトリを更新します。その後、nginxをインストールします。

sudo apt update
sudo apt install nginx

手順を承認すると、apt は Nginx と必要な依存関係をサーバーにインストールします。.

ステップ2 – ファイアウォールを構成する

Nginx をテストする前に、ファイアウォールソフトウェアを設定してサービスへのアクセスを許可する必要があります。インストール後、Nginx は ufw にサービスとして登録されるため、Nginx へのアクセスを簡単に許可できます。.

次のように入力して、ufw が操作できるアプリケーション構成を一覧表示します。

sudo ufw app list

アプリケーション プロファイルのリストが表示されます。

Output
Available applications:
Nginx Full
Nginx HTTP
Nginx HTTPS
OpenSSH

出力に示されているように、Nginx には 3 つのプロファイルがあります。

  • Nginx フル: このプロファイルは、ポート 80 (通常の暗号化されていない Web トラフィック) とポート 443 (TLS/SSL 暗号化トラフィック) の両方を開きます。.
  • Nginx HTTP: このプロファイルはポート80(通常の暗号化されていないWebトラフィック)のみを開きます。
  • Nginx HTTPS: このプロファイルはポート443(TLS/SSL暗号化トラフィック)のみを開きます

設定したトラフィックを許可しつつ、最も制限の厳しいプロファイルを有効にすることをお勧めします。現時点では、ポート80のトラフィックのみを許可する必要があります。.

次のように入力するとこれを有効にできます。

sudo ufw allow 'Nginx HTTP'

次のように入力してこの変更を確認できます。

sudo ufw status

出力には、許可されている HTTP トラフィックが表示されます。

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 – ウェブサーバーを確認する

インストールプロセスの最後に、Ubuntu 20.04はNginxを起動します。Webサーバーはすでに起動しているはずです。.

次のように入力することでこれを実行できます。

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 2020-04-20 16:08:19 UTC; 3 days ago
Docs: man:nginx(8)
Main PID: 2369 (nginx)
Tasks: 2 (limit: 1153)
Memory: 3.5M
CGroup: /system.slice/nginx.service
├─2369 nginx: master process /usr/sbin/nginx -g daemon on; master_process on;
└─2380 nginx: worker process

このケースでは、サービスが正常に起動していることが確認できました。ただし、テストする最良の方法は、実際にNginxからページをリクエストすることです。.

サーバーのIPアドレスにアクセスすることで、デフォルトのNginxランディングページにアクセスし、ソフトウェアが正常に動作しているかどうかを確認できます。サーバーのIPアドレスがわからない場合は、icanhazip.comツールを使って調べることができます。このツールを使うと、インターネット上のどこかから取得したパブリックIPアドレスを確認できます。

curl -4 icanhazip.com

サーバーの IP アドレスを取得したら、ブラウザのアドレス バーに入力します。

http://your_server_ip

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

このページが表示されている場合、サーバーは正常に動作しており、管理できる状態です。.

ステップ4 – Nginxプロセスの管理

Web サーバーがセットアップされたので、基本的な管理コマンドをいくつか確認してみましょう。.

Web サーバーを停止するには、次のように入力します。

sudo systemctl stop nginx

Web サーバーが停止した場合に起動するには、次のように入力します。

sudo systemctl start nginx

サービスを停止してから再起動するには、次のように入力します。

sudo systemctl restart nginx

設定変更のみを行う場合は、接続を切断することなくNginxをリロードできる場合が多いです。これを行うには、次のように入力します。

sudo systemctl reload nginx

デフォルトでは、Nginxはサーバーの起動時に自動的に起動するように設定されています。この動作を望まない場合は、次のコマンドを入力して無効にすることができます。

sudo systemctl disable nginx

起動時にサービスが再度開始されるようにするには、次のように入力します。

sudo systemctl enable nginx

これで基本的な管理コマンドを学習し、複数のドメインをホストするようにサイトを構成する準備が整いました。.

ステップ5 – サーバーブロックを設定する(推奨)

Nginxウェブサーバーを使用する場合、サーバーブロック(Apacheの仮想ホストに似ています)を使用して設定の詳細をカプセル化し、単一のサーバーで複数のドメインをホストできます。ここではyour_domainというドメインを設定しますが、これはご自身のドメイン名に置き換えてください。.

Ubuntu 20.04のNginxでは、デフォルトでサーバーブロックが有効になっており、/var/www/htmlディレクトリ外のドキュメントを提供するように設定されています。これは単一のサイトでは問題なく動作しますが、複数のサイトをホストしている場合は煩雑になる可能性があります。/var/www/htmlを変更する代わりに、your_domainサイト用に/var/wwwにディレクトリ構造を作成し、クライアントのリクエストに一致しない場合に備えて、/var/www/htmlをデフォルトのディレクトリとして残しておきましょう。その他のサイト

次のように -p フラグを使用して your_domain のディレクトリを作成し、必要な親ディレクトリを作成します。

sudo mkdir -p /var/www/your_domain/html

次に、$USER 環境変数を使用してディレクトリの所有権を割り当てます。

sudo chown -R $USER:$USER /var/www/your_domain/html

デフォルトのファイル権限を設定するumask値を変更していない場合は、Webルート権限は正しいはずです。権限が正しく設定され、所有者にはファイルの読み取り、書き込み、実行を許可し、グループやその他のユーザーには読み取りと実行の権限のみを付与するには、次のコマンドを入力します。

sudo chmod -R 755 /var/www/your_domain

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

sudo nano /var/www/your_domain/html/index.html

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

<html>
<head>
<title>Welcome to your_domain!</title>
</head>
<body>
<h1>Success! The your_domain server block is working!</h1>
</body>
</html>

Ctrl+X を押してファイルを保存して閉じ、保存を求めるメッセージが表示されたら Y を押して Enter キーを押します。.

Nginx がこのコンテンツを提供するには、正しい指示を記述したサーバーブロックを作成する必要があります。デフォルトの設定ファイルを直接変更するのではなく、/etc/nginx/sites-available/your_domain に新しいファイルを作成しましょう。

sudo nano /etc/nginx/sites-available/your_domain

次の構成ブロックを貼り付けます。これはデフォルトに似ていますが、新しいディレクトリとドメイン名に合わせて更新されています。

server {
listen 80;
listen [::]:80;
root /var/www/your_domain/html;
index index.html index.htm index.nginx-debian.html;
server_name your_domain www.your_domain;
location / {
try_files $uri $uri/ =404;
}
}

ルート構成を新しいディレクトリに更新し、server_name をドメイン名に更新したことに注意してください。.

次に、Nginx の起動時に読み取る sites-enabled ディレクトリへのリンクを作成して、ファイルを有効にします。

sudo ln -s /etc/nginx/sites-available/your_domain /etc/nginx/sites-enabled/

これで、2 つのサーバー ブロックが有効になり、listen および server_name ディレクティブに基づいてリクエストに応答するように構成されました (Nginx がこれらのディレクティブを処理する方法の詳細については、ここを参照してください)。

  • あなたのドメイン: your_domain および www.your_domain のリクエストに応答します。.
  • デフォルト: 他の 2 つのブロックと一致しないポート 80 上のすべての要求に応答します。.

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

sudo nano /etc/nginx/nginx.conf

server_names_hash_bucket_size コマンドを探し、# シンボルを削除して行のコメントを解除します。nano を使用している場合は、Ctrl キーと w キーを押すことでファイル内の単語を素早く検索できます。.

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

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

次に、Nginx ファイルに構文エラーがないことを確認するためにテストします。

sudo nginx -t

問題がなければ、変更を有効にするために Nginx を再起動します。

sudo systemctl restart nginx

Nginx がドメイン名を配信するようになりました。http://your_domain にアクセスしてテストすると、次のような画面が表示されます。

ステップ6 – 重要なNginxファイルとディレクトリを理解する

Nginx サービス自体の管理方法がわかったので、次に、いくつかの重要なディレクトリとファイルについて理解するために数分かかる必要があります。.

コンテンツ
  • /var/www/html: 実際のウェブコンテンツは、デフォルトでは先ほど見たNginxのデフォルトページのみで構成されており、/var/www/htmlディレクトリの外部で提供されます。これはNginxの設定ファイルを変更することで変更できます。.
サーバー構成
  • /etc/nginx: Nginx 設定ディレクトリ。すべての Nginx 設定ファイルはここにあります。.
  • /etc/nginx/nginx.conf: Nginxのメイン設定ファイル。これを変更することで、グローバルなNginx設定を変更できます。.
  • /etc/nginx/sites-available/: 各サイトのサーバーブロックを保存できるディレクトリです。Nginxは、このディレクトリ内の設定ファイルがsites-enabledディレクトリにリンクされていない限り使用しません。通常、すべてのサーバーブロック設定はこのディレクトリで行われ、その後、別のディレクトリにリンクすることで有効化されます。.
  • /etc/nginx/sites-enabled/: 各サイトのアクティブサーバーブロックが保存されるディレクトリ。通常、既存のサイトディレクトリ内の構成ファイルにリンクすることで作成されます。.
  • /etc/nginx/スニペット: このディレクトリには、Nginx 設定の他の部分に含めることができる設定フラグメントが含まれています。繰り返し使用される可能性のある設定セクションは、フラグメントにリファクタリングするのに適しています。.
サーバーレポート
  • /var/log/nginx/access.log: Nginx が別途設定されていない限り、Web サーバーへのすべてのリクエストはこのログ ファイルに記録されます。.
  • /var/log/nginx/error.log: すべての Nginx エラーがこのログに記録されます。.

結果

Web サーバーがインストールされたので、より豊かなエクスペリエンスを実現するために使用するコンテンツやテクノロジの種類に関して、さまざまなオプションが利用できるようになります。.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

あなたも気に入るかもしれない