Ubuntu18.04にNginxをインストールする方法[クイックスタート]
序章
Nginxは、世界で最も人気のあるWebサーバーの1つであり、インターネット上で最大かつ最もトラフィックの多いサイトのいくつかをホストする責任があります。 ほとんどの場合、Apacheよりもリソースに優しく、Webサーバーまたはリバースプロキシとして使用できます。
このガイドでは、Ubuntu18.04サーバーにNginxをインストールする方法について説明します。 このチュートリアルのより詳細なバージョンについては、 Ubuntu18.04にNginxをインストールする方法を参照してください。
前提条件
このガイドを開始する前に、次のものが必要です。
- Ubuntu18.04サーバーとsudo権限を持つ通常の非rootユーザー。 さらに、必須ではないポートをブロックするには、基本的なファイアウォールを有効にする必要があります。 Ubuntu 18.04 の初期サーバーセットアップガイドに従って、通常のユーザーアカウントを構成し、ファイアウォールをセットアップする方法を学ぶことができます。
利用可能なアカウントがある場合は、root以外のユーザーとしてログインして開始します。
ステップ1-Nginxをインストールする
NginxはUbuntuのデフォルトのリポジトリで利用できるため、 apt
包装システム。
ローカルパッケージインデックスを更新します。
- sudo apt update
Nginxをインストールします:
- sudo apt install nginx
ステップ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)
ステップ3–Webサーバーを確認する
に確認してください systemd
次のように入力して、サービスが実行されていることを確認するinitsystem。
- 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ランディングページが表示されます。
ステップ4–サーバーブロックの設定(推奨)
Nginx Webサーバーを使用する場合、サーバーブロック(Apacheの仮想ホストと同様)を使用して、構成の詳細をカプセル化し、単一のサーバーから複数のドメインをホストできます。 example.com というドメインを設定しますが、これを独自のドメイン名に置き換える必要があります。 DigitalOceanを使用したドメイン名の設定の詳細については、 DigitalOceanDNSの概要を参照してください。
のディレクトリを作成します example.com
、を使用して -p
必要な親ディレクトリを作成するためのフラグ:
- sudo mkdir -p /var/www/example.com/html
ディレクトリの所有権を割り当てます。
- sudo chown -R $USER:$USER /var/www/example.com/html
変更していない場合は、Webルートの権限が正しいはずです。 umask
値ですが、次のように入力して確認できます。
- sudo chmod -R 755 /var/www/example.com
サンプルを作成する index.html
使用するページ nano
またはお気に入りの編集者:
- nano /var/www/example.com/html/index.html
内部に、次のサンプル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
:
- sudo nano /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.com
:のリクエストに対応しますexample.com
とwww.example.com
.default
:ポート上のすべての要求に応答します80
他の2つのブロックと一致しません。
サーバー名を追加することで発生する可能性のあるハッシュバケットメモリの問題を回避するには、 /etc/nginx/nginx.conf
ファイル。 ファイルを開きます。
- sudo nano /etc/nginx/nginx.conf
を見つける server_names_hash_bucket_size
ディレクティブを削除し、 #
行のコメントを解除する記号:
...
http {
...
server_names_hash_bucket_size 64;
...
}
...
構文エラーをテストします。
- sudo nginx -t
Nginxを再起動して、変更を有効にします。
- sudo systemctl restart nginx
これで、Nginxがドメイン名を提供するはずです。 次の場所に移動して、これをテストできます。 http://example.com
、次のようなものが表示されます。
結論
Webサーバーがインストールされたので、提供するコンテンツのタイプと、より豊かなエクスペリエンスを作成するために使用するテクノロジーについて、多くのオプションがあります。
より完全なアプリケーションスタックを構築したい場合は、 Ubuntu18.04でLEMPスタックを構成する方法に関するこの記事を確認してください。