UbuntuにNginxをインストールする作業の続きです。
- 公式サイトからNginxの圧縮ファイルをダウンロード
- WinSCPでサーバーにアップロード
- SSHクライアントでサーバーに接続
- Nginx公式サイトのインストールガイドを参照
- Nginx参考書のインストールガイドを参照
- やっぱNginx公式サイトのインストールガイドを真似してaptコマンドで自動インストール
- Nginxの起動
- Nginxの動作状況を確認
- Nginxのバージョン確認
- Webブラウザーでサーバーにアクセス
公式サイトからNginxの圧縮ファイルをダウンロード
https://nginx.org/en/download.html
本日の時点でStable versionの最新版は「nginx-1.26.2」でした。
https://nginx.org/download/nginx-1.26.2.tar.gz
これをWindowsのデスクトップにでもダウンロードして保存します。
※本来ならUbuntuにSSH接続でログインして、Webサーバー内でダウンロードや解凍などの作業をやるべきなのですが、ここではUbuntuのコマンド操作でダウンロードするために必要なライブラリーの取得などを省略するために、Windowsパソコンでできることはやってしまっています。
WinSCPでサーバーにアップロード
WinSCPでサーバーに接続して、ダウンロードしたファイルを転送します。
Nginxのソースコードは、Ubuntuの「/usr/local/src」ディレクトリーに置きます。
アップロードしようとしたらエラーメッセージが出て転送できませんでした。
WinSCPでSSH接続しているユーザー名は「Ubuntu」ですが、
接続先の「/usr/local/src」ディレクトリーは所有者が「root」になっていたため、不一致(権限不足)で操作できませんでした。
仕方ないので、サーバーにSSHクライアントソフトで接続して、コマンド操作する方法に変更します。
(上記の失敗の過程は、今後の参考にために残しておきます。)
(ログインユーザーのホームディレクトリー「/home/ubuntu」ならアクセス権限があるので、いったんここにアップロードして、その後コピー等のコマンド操作をすれば対処可能です。)
SSHクライアントでサーバーに接続
RLoginでさくらVPSに接続してログインしたら、
「*** システムの再起動が必要です ***」というメッセージが表示されていました。
(前にログインしたとき、update、upgradeコマンドを実行していたためだと思われます。)
Ubuntuを再起動するコマンド「sudo reboot」を入力して、サーバーを再起動させます。
Nginx公式サイトのインストールガイドを参照
Nginxの公式サイトにUbuntuに手動でインストールする場合の手順が紹介されています。
基本的には、公式の方法を参考にしてみます。
https://nginx.org/en/linux_packages.html#Ubuntu
(参考)
https://qiita.com/ran-sakata/items/4fc643e001bca12e5894
Ubuntu
(以下、※青字はGoogle翻訳による日本語訳)
Install the prerequisites:
前提条件をインストールします:
sudo apt install curl gnupg2 ca-certificates lsb-release ubuntu-keyring
Import an official nginx signing key so apt could verify the packages authenticity. Fetch the key:
apt がパッケージの信頼性を検証できるように、公式の nginx 署名キーをインポートします。キーを取得します。
curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
| sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null
Verify that the downloaded file contains the proper key:
ダウンロードしたファイルに適切なキーが含まれていることを確認します。
gpg --dry-run --quiet --no-keyring --import --import-options import-show /usr/share/keyrings/nginx-archive-keyring.gpg
The output should contain the full fingerprint
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 as follows:
出力には、次のように完全なフィンガープリント 573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62 が含まれるはずです。
pub rsa2048 2011-08-19 [SC] [expires: 2027-05-24]
573BFD6B3D8FBC641079A6ABABF5BD827BD9BF62
uid nginx signing key <signing-key@nginx.com>
Note that the output can contain other keys used to sign the packages.
出力には、パッケージの署名に使用される他のキーが含まれる場合があることに注意してください。
To set up the apt repository for stable nginx packages, run the following command:
安定した nginx パッケージ用の apt リポジトリを設定するには、次のコマンドを実行します。
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
If you would like to use mainline nginx packages, run the following command instead:
メインラインの nginx パッケージを使用する場合は、代わりに次のコマンドを実行します。
echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/mainline/ubuntu `lsb_release -cs` nginx" \
| sudo tee /etc/apt/sources.list.d/nginx.list
Set up repository pinning to prefer our packages over distribution-provided ones:
ディストリビューションが提供するパッケージよりも弊社のパッケージを優先するようにリポジトリのピン留めを設定します。
echo -e "Package: *\nPin: origin nginx.org\nPin: release o=nginx\nPin-Priority: 900\n" \
| sudo tee /etc/apt/preferences.d/99nginx
To install nginx, run the following commands:
nginx をインストールするには、次のコマンドを実行します。
sudo apt update
sudo apt install nginx
:
ここまで、公式サイトのUbuntuへNginxをインストールする方法を見て、自分が希望している方法ではないことが分かりました。
なので、もう一度別のやり方を調べてみます。
Nginx参考書のインストールガイドを参照
手元にはNginxの参考書が何冊かあります。
以前、Nginxの理解を深めたいと思ったときに、衝動的に買い漁ってしまいましたが、読まないまま積読になっていました。
やっとここに来て出番が来ました!(…入手しておいて良かった)
nginx実践入門
発行日:2016/1/16
この本には、Nginxのコンパイル方法(手動インストール)が詳しく紹介されています。
Nginxの動作を細かく設定したい場合は、「nginx実践入門」が参考になると思います。
本の発行日が2016年と古いですが、基本的な操作は今も大差ないと思います。
Nginx ポケットリファレンス
発行日:2015/9/26
この本には、Nginxのコンパイル方法(手動インストール)が簡潔に紹介されています。
とりあえずサクッとコンパイルしたい場合は、「Nginx ポケットリファレンス」も参考になると思います。
本の発行日が2015年と古いですが、基本的な操作は今も大差ないと思います。
nginx実践ガイド
発行日:2017/2/16
この本には、Nginxのコンパイル方法(手動インストール)がほとんど記載されていません。
辛うじて第10章にオマケ的にちょこっと記載されているだけです。
基本的にこの本の方針は、Linuxディストリビューションで用意されている標準パッケージのNginxを使うとのことです。
Nginxのインストール方法よりも、運用のノウハウの説明にページを割いているかんじでした。
なので、コンパイル方法を知りたい場合は、「nginx実践ガイド」はあまり参考にならないと思います。
ハイパフォーマンスHTTPサーバ Nginx入門
発行日:2011/4/21
この本には、Nginxのコンパイル方法(手動インストール)が詳しく紹介されています。
さらにシンボリックリンクを張って、複数のNginxを切り替える方法も紹介されています。
Nginxのコンパイルオプションをいろいろ変えてみて、希望のビルドを使用したい場合は、「ハイパフォーマンスHTTPサーバ Nginx入門」が参考になると思います。
本の発行日が2011年と古いですが、基本的な操作は今も大差ないと思います。
要点はシンボリックリンクを張り変えるだけなので、コンパイルする作業は他の本と基本的には同じです。
シンボリックリンクを変更するコマンド
ln -s /usr/local/nginx-1.26.2 /usr/local/nginx
みたいに「/usr/local/nginx」の参照先を変えるだけの話です。
F5社のインストールガイド
Amazonで見かけるNginxの参考書は、発行日が古くて、最近出版された本がないようでした。
情報の陳腐化が気になる方は、F5社(現在のNginxの開発元)のインストールガイドも参考にしてみたら良いと思います。
→ザッと見たかんじ、上記の本で紹介されているコンパイル方法と基本的には同じような内容でした。
Compiling and Installing from Source
ソースからのコンパイルとインストール
Compiling NGINX Open Source from source affords more flexibility than prebuilt packages: you can add particular modules (from NGINX or third parties), and apply latest security patches.
ソースから NGINX オープンソースをコンパイルすると、ビルド済みのパッケージよりも柔軟性が高まります。特定のモジュール (NGINX またはサードパーティ製) を追加したり、最新のセキュリティ パッチを適用したりできます。
:
ここまでソースコードからコンパイルして、Nginxを手動でインストールする方法や、複数のNginxを切り替える方法を確認してみました。
今回用意するWebサイトは、それほど細かい設定が必要となるサーバーではないため、手動でNginxをインストールするのは面倒くさいと思いました。
なので、Nginx公式サイトのaptコマンドでサクッと最新のNginxをインストールできる方法を試してみたいと思います。
:
ここまで引っ張っておいて、なんですが、優柔不断かつ面倒くさがりなので仕方ありません。
やっぱNginx公式サイトのインストールガイドを真似してaptコマンドで自動インストール
Nginx公式サイトの説明通りにやったら、サクッと最新の安定版「Nginx 1.26.2」がインストールできました。
Nginxの起動
sudo systemctl start nginx
Nginxの動作状況を確認
sudo systemctl status nginx
↓
● nginx.service - nginx - high performance web server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; preset: enabled)
Active: active (running) since Wed 2024-11-20 23:32:43 JST; 13s ago
Docs: https://nginx.org/en/docs/
Process: 6784 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
Main PID: 6785 (nginx)
Tasks: 4 (limit: 2275)
Memory: 3.7M (peak: 3.9M)
CPU: 11ms
CGroup: /system.slice/nginx.service
├─6785 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
├─6786 "nginx: worker process"
├─6787 "nginx: worker process"
└─6788 "nginx: worker process"11月 20 23:32:43 ***-***-***** systemd[1]: Starting nginx.service - nginx - high performance web server...
11月 20 23:32:43 ***-***-***** systemd[1]: Started nginx.service - nginx - high performance web server.
「Active: active (running) 」と表示されていたらOK、とのこと。
Nginxのバージョン確認
nginx -v
↓
nginx version: nginx/1.26.2
Webブラウザーでサーバーにアクセス
ブラウザーのURL欄に、サーバーのIPアドレスを直接入力して、ネットワーク越しにアクセスしてみます。
Nginxのデフォルトページが表示されたら、WebサーバーソフトとしてNginxが動作していることが外部から確認できます。
以上で、UbuntuサーバーにNginxのインストールが完了しました。
次は、DNSの設定を変更して、旧サーバーから新サーバーへとドメインの紐づけを変更する作業を行う予定です。