Nginxは、高性能なWebサーバーおよびリバースプロキシサーバーで、リソースの消費が少なく、特に静的コンテンツの提供や高トラフィックの処理に優れています。ここでは、Ubuntu 18.04にNginxをインストールし、基本的な設定を行う方法について詳しく説明します。
1. パッケージリストの更新
Nginxをインストールする前に、まずUbuntuのパッケージリストを最新の状態に更新します。これを行うことで、インストールするパッケージが最新のものになるようにします。
bashsudo apt update
このコマンドを実行すると、apt
はリポジトリから最新のパッケージリストを取得し、システムに反映します。
2. Nginxのインストール
次に、Nginxをインストールします。Ubuntuの公式リポジトリにはNginxが含まれており、簡単にインストールすることができます。
bashsudo apt install nginx
インストールが完了すると、Nginxは自動的に起動し、システムのサービスとして実行されます。systemctl
を使用して、インストールされたNginxサービスの状態を確認できます。
bashsudo systemctl status nginx
これにより、Nginxが正しくインストールされ、実行中であることが確認できます。
3. Nginxの基本的なファイアウォール設定
Ubuntu 18.04では、ufw
(Uncomplicated Firewall)がデフォルトでインストールされており、システムのセキュリティを強化しています。Nginxを使用するには、HTTPおよびHTTPSポートを開放する必要があります。
bashsudo ufw allow 'Nginx Full'
これにより、80番ポート(HTTP)および443番ポート(HTTPS)が開放されます。変更を反映させるために、ufw
をリロードします。
bashsudo ufw reload
また、ufw
のステータスを確認して、ルールが適用されていることを確認できます。
bashsudo ufw status
4. Nginxの自動起動設定
システムの起動時にNginxが自動的に開始されるように設定します。systemctl
コマンドを使用して、自動起動を有効にすることができます。
bashsudo systemctl enable nginx
これにより、システムが再起動されるたびにNginxが自動的に開始されます。
5. Nginxのテスト
Nginxが正しくインストールされ、稼働していることを確認するために、WebブラウザでサーバーのIPアドレスまたはドメイン名にアクセスします。例えば、サーバーのIPアドレスが192.168.1.100
であれば、ブラウザで以下のURLを開きます。
cpphttp://192.168.1.100
正常に動作していれば、「Welcome to nginx!」というページが表示されます。これにより、Nginxが正しくインストールされ、動作していることが確認できます。
6. Nginxの設定ファイルの確認
Nginxの設定ファイルは、通常/etc/nginx/nginx.conf
にあります。設定を変更する場合は、このファイルを編集することになります。まず、Nginxが提供するデフォルトの設定ファイルをバックアップしておくことをお勧めします。
bashsudo cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.backup
バックアップを取った後、設定ファイルを編集します。
bashsudo nano /etc/nginx/nginx.conf
設定ファイルの編集が完了したら、Nginxの設定が正しいかどうかを確認するために、以下のコマンドを使用します。
bashsudo nginx -t
エラーメッセージが表示されなければ、設定は問題ありません。設定を反映させるために、Nginxを再起動します。
bashsudo systemctl restart nginx
7. サイトの設定(仮想ホスト)
複数のサイトをホストする場合、Nginxでは仮想ホストを使ってサイトごとに異なる設定を行うことができます。まず、/etc/nginx/sites-available/
ディレクトリ内に新しい設定ファイルを作成します。
bashsudo nano /etc/nginx/sites-available/example.com
仮想ホスト設定の例は以下の通りです。
nginxserver {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
次に、この設定ファイルをsites-enabled
ディレクトリにシンボリックリンクとして追加します。
bashsudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
その後、nginx -t
コマンドで設定を確認し、問題がなければNginxを再起動します。
bashsudo nginx -t sudo systemctl restart nginx
8. SSL/TLSの設定(HTTPS)
セキュリティのため、サイトでSSL/TLSを有効にすることが重要です。Let’s Encryptを使って無料でSSL証明書を取得することができます。certbot
を使って証明書を取得する方法は以下の通りです。
まず、certbot
をインストールします。
bashsudo apt install certbot python3-certbot-nginx
次に、証明書を取得します。
bashsudo certbot --nginx -d example.com -d www.example.com
証明書の取得が成功したら、HTTPSが有効になり、Nginxの設定ファイルが自動的に更新されます。証明書の自動更新を設定するために、certbot
の定期的な実行をcron
に追加します。
bashsudo crontab -e
以下の行を追加して、自動更新を設定します。
bash0 0 * * * certbot renew --quiet
9. ログファイルの確認
Nginxのログは、デフォルトで/var/log/nginx/
ディレクトリに保存されます。アクセスログとエラーログを確認することで、サイトの動作をモニタリングできます。
bashsudo tail -f /var/log/nginx/access.log
sudo tail -f /var/log/nginx/error.log
結論
これで、Ubuntu 18.04にNginxをインストールし、基本的な設定を行う手順が完了しました。Nginxは高性能で拡張性のあるWebサーバーであり、適切な設定を行うことで、安全かつ効率的にウェブサイトをホスティングすることができます。