Ubuntu 24.04/22.04/20.04 でソースから NGINX をビルドする方法

Ubuntu でソースから NGINX をビルドすると、Web サーバーを構成するためのカスタマイズされたアプローチが提供され、特定の環境との最適なパフォーマンスと互換性が確保されます。バイナリ インストールとは異なり、ソースから NGINX をコンパイルすると、特定のモジュールを有効または無効にしたり、サードパーティ モジュールを統合したり、カスタム パッチを適用したりする柔軟性が得られます。このプロセスにより、サーバーの内部動作をより深く理解できるようになり、独自の要件に合わせてより安全で効率的な構成が可能になります。

Nginx 構築の主なハイライト:

  • カスタム構成: 必要なモジュールのみを有効にして、ニーズに合わせて NGINX をカスタマイズします。
  • 強化されたパフォーマンス: ハードウェアとワークロードに合わせて NGINX を最適化し、応答時間とリソース使用量を改善できます。
  • 高度な機能: 事前にコンパイルされたパッケージでは利用できない可能性のある最先端の機能とモジュールにアクセスします。
  • 安全: より安全な展開のために、特定のパッチを適用し、セキュリティ強化オプションを使用してコンパイルします。
  • 学習機会: NGINX のアーキテクチャと構成オプションに関する詳細な知識を習得します。
  • コントロール: ディレクトリ パスや構成ファイルなど、サーバーのセットアップを完全に制御します。
  • 最新の: パッケージのリリースに先立って新機能やバグ修正にアクセスし、最新バージョンの NGINX をビルドします。
  • コミュニティサポート: トラブルシューティングと機能強化のために、オープンソース コミュニティの豊富な知識とリソースを活用します。

これらの利点を考慮すると、ソースから NGINX を構築することは、Web サーバーから最大限の制御と効率を求める人にとって強力なアプローチです。

Ubuntu でソースから NGINX をビルドする詳細な手順を見てみましょう。

Ubuntu に NGINX ソースの初期パッケージをインストールする

NGINX をビルドする前に Ubuntu を更新する

Ubuntu で NGINX ソースのインストールを開始するには、まずシステムを更新してアップグレードします。この手順により、システムのすべてのパッケージが最新になり、潜在的な互換性の問題が最小限に抑えられます。

システムを更新およびアップグレードするには、ターミナルで次のコマンドを実行します。

sudo apt update && sudo apt upgrade

NGINX コンパイルの依存関係のインストール

システムを最新の状態にしたら、次のステップでは、NGINX コンパイルに必要な依存関係をインストールします。コンパイラやライブラリなどのこれらのパッケージは、ソースから NGINX をビルドするために不可欠です。

必要な依存関係をインストールするには、次のコマンドを実行します。

sudo apt install build-essential libpcre3-dev libssl-dev zlib1g-dev libgd-dev

このコマンドは、NGINX コンパイル プロセスでそれぞれ特定の役割を果たすいくつかの重要なパッケージをインストールします。

  • build-essential: ソースからソフトウェアをコンパイルするために不可欠な GCC コンパイラと関連ツールが含まれています。
  • libpcre3-dev: URL 書き換えやその他の NGINX 機能に不可欠な、Perl 5 互換の正規表現サポート用のライブラリを提供します。
  • libssl-dev: SSL/TLS サポート用のライブラリを提供し、現代の Web サービスの重要な側面である安全なデータ転送を保証します。
  • zlib1g-dev: 圧縮機能に不可欠なこのパッケージは、NGINX のパフォーマンスと速度の向上に役立ちます。
  • libgd-dev: 画像処理機能をサポートし、NGINX が直接画像操作を実行できるようにします。

UbuntuでNGINXソースコードをダウンロードする

NGINX バージョンの選択

必要な依存関係をインストールしたら、NGINX ソース コードのダウンロードに進みます。NGINX Web サイトにアクセスして、ニーズに合ったバージョンを選択します。メインライン、安定版、または特定のバージョンから選択できます。メインライン バージョンは最新の機能と改善で定期的に更新されますが、安定版は実稼働環境で十分にテストされた安定性に重点を置いています。

ソースコードのダウンロード

選択したバージョンのNGINXをダウンロードする、 使用 wget コマンド。このコマンドを使用すると、インターネットからサーバーへファイルを直接ダウンロードできます。たとえば、メインライン バージョン 1.23.3 をダウンロードするには、次のコマンドを使用します。

wget http://nginx.org/download/nginx-x.x.x.tar.gz

注記: バージョン番号を、インストールする最新バージョンまたは優先バージョンに置き換えます。最新の機能とセキュリティ更新を利用するには、常に NGINX Web サイトで最新バージョンを確認してください。メインライン バージョンは数か月ごとに更新される可能性があるため、最新リリースに関する情報を常に把握しておくことは、安全で効率的なサーバー環境を維持するために重要です。

NGINX ソースコードを抽出する

NGINX tarball の解凍

NGINXソースコードをダウンロードしたら、次のステップはtarballからファイルを抽出します。このプロセスでは、tar.gzファイルを解凍してNGINXソースコードにアクセスします。 tar コンテンツを抽出するための適切なフラグを指定したコマンド。

例として、NGINX 1.23.3 のバージョンを使用して、実行方法を説明します。

tar -xzvf nginx-1.23.3.tar.gz

このコマンドは次のように分類されます。

  • x: ファイルを抽出します。
  • z: gzip を使用してアーカイブを解凍します。
  • v: 抽出プロセスを表示する詳細モード。
  • f: アーカイブのファイル名を指定します。

NGINXディレクトリへの変更

ファイルを解凍した後、NGINX ソースが解凍されたディレクトリに移動する必要があります。この手順は、コンパイル プロセスを開始するために重要です。

使用 cd 抽出した NGINX ディレクトリに移動するコマンド:

cd nginx-1.23.3

Ubuntu で NGINX のビルド オプションを構成する

設定オプションの設定

ソースからNGINXをビルドする準備をするときは、ビルドオプションを設定することで、特定のニーズに合わせてインストールを調整できます。 ./configure パスを設定し、さまざまなモジュールを有効にするコマンド。一般的な構成オプションとパスを組み込んだコマンドを次に示します。

./configure --prefix=/var/www/html --sbin-path=/usr/sbin/nginx --conf-path=/etc/nginx/nginx.conf --http-log-path=/var/log/nginx/access.log --error-log-path=/var/log/nginx/error.log --with-pcre  --lock-path=/var/lock/nginx.lock --pid-path=/var/run/nginx.pid --with-http_ssl_module --with-http_image_filter_module=dynamic --modules-path=/etc/nginx/modules --with-http_v2_module --with-stream=dynamic --with-http_addition_module --with-http_mp4_module

このコマンドは、NGINX ファイルのさまざまなパスを設定し、SSL サポートや HTTP/2 処理などの NGINX の機能を強化するモジュールを含めます。

NGINXビルドのカスタマイズ

NGINXビルドをカスタマイズする場合、 ./configure スクリプトは、広範囲にわたるカスタマイズを可能にする強力なツールです。特定の要件を満たすように NGINX インストールをカスタマイズする方法は次のとおりです。

構成例

HTTP/2 サポートを有効にし、NGINX で正規表現を処理するために重要な PCRE ライブラリを統合するには、次の構成を使用します。

./configure --with-http_v2_module --with-pcre

NGINXのインストールディレクトリを定義する必要がある場合は、 --prefix オプション。たとえば、NGINXを /usr/local/nginx ディレクトリの場合、コマンドは次のようになります。

./configure --prefix=/usr/local/nginx

ngx_cache_purgeなどの追加モジュールを組み込むには、 --add-module オプションが役立ちます。このモジュールを含めるには、構成は次のようになります。

./configure --add-module=/path/to/ngx_cache_purge

libxsltやlibsslのような追加ライブラリを組み込むのは、 --with-XXX-module オプション。これらのライブラリを含めるには、それぞれのコマンドは次のようになります。

./configure --with-libxslt-module
./configure --with-openssl=/path/to/openssl

SSL や実際の IP モジュールなどのモジュールを有効にするには、構成コマンドは次のようになります。

./configure --with-http_ssl_module
./configure --with-http_realip_module

これらの構成は、 ./configure NGINX ビルドをカスタマイズするためのスクリプト。

利用可能なすべてのオプションの包括的なリストを表示するには、次のコマンドを実行します。 ./configure --helpこのコマンドは、NGINX インストールを最適化するために使用できるすべてのフラグとオプションに関する詳細情報を提供します。

NGINXをコンパイルするための最終プロセスを開始する

NGINXのコンパイル

NGINXの設定オプションを設定したら、コンパイルプロセスを開始します。 make コマンド。このコマンドは、NGINXソースコードを、 ./configure スクリプト。コンパイルプロセスの結果、NGINXバイナリ実行ファイルが作成されます。これは通常、 objs ディレクトリ。

make

NGINXのインストール

NGINXをコンパイルしたら、以下を使用してインストールを続行します。 sudo make installこのコマンドは、NGINXバイナリ、設定ファイル、および追加の必要なファイルを指定されたプレフィックスパスにインストールします。設定中に別の場所を定義していない場合、NGINXは次の場所にインストールされます。 /usr/local/nginx/ デフォルトでは。

sudo make install

インストール後、NGINXは sbin 指定されたプレフィックス パス内のディレクトリが作成され、その後の構成と使用の準備が整います。

NGINX SystemD サービスを作成する

ソースから NGINX を正常にビルドしてインストールしたら、次のステップは systemd を使用して NGINX をサービスとして管理することです。これにより、他の Ubuntu サービスと同様に NGINX を起動、停止、再起動できるようになります。

NGINX 用の SystemD サービス ファイルを作成する

NGINX 用の systemd サービスを設定するには、まず新しいサービス ファイルを作成します。

sudo nano /etc/systemd/system/nginx.service

このファイルに以下の詳細を入力し、 /path/to/nginx NGINXバイナリが次の場所にない場合は、実際のパスを入力します。 /usr/sbin/nginx:

[Unit]
Description=The NGINX HTTP and reverse proxy server
After=syslog.target network-online.target remote-fs.target nss-lookup.target
Wants=network-online.target
        
[Service]
Type=forking
PIDFile=/var/run/nginx.pid
ExecStartPre=/usr/sbin/nginx -t
ExecStart=/usr/sbin/nginx
ExecReload=/usr/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
        
[Install]
WantedBy=multi-user.target

この構成では、NGINX をサービスとして設定し、起動、停止、再ロードの方法を定義して、ネットワークがオンラインになった後に起動するようにします。

新しいサービスを認識させるためにSystemDをリロードする

サービスを定義したら、systemd を更新して新しい NGINX サービスを認識します。

sudo systemctl daemon-reload

NGINX サービスの開始と有効化

systemd サービスが配置されたら、NGINX サービスを開始します。

sudo systemctl start nginx

起動時に NGINX が自動的に起動するようにするには、サービスを有効にします。

sudo systemctl enable nginx

NGINXのインストールを確認する

NGINX 機能のテスト

NGINX をインストールしたら、その動作を確認することが重要です。Web ブラウザから NGINX のウェルカム ページにアクセスできます。サーバーのローカル ホスト アドレスまたは IP アドレスを使用して、NGINX テスト ページに移動します。

Web ブラウザを開き、次の URL を入力して、ローカルホストを使用して NGINX のウェルカム ページにアクセスします。

http://localhost

IPアドレスによる検証

ローカルホストにアクセスしてもNGINXのウェルカムページが表示されない場合は、代わりにサーバーのIPアドレスを使用できます。 192.128.1.1 実際のサーバーIPアドレスを入力します:

http://192.128.1.1

これらの URL にアクセスすると、NGINX が Ubuntu サーバーにインストールされ、正常に実行されていることを示すデフォルトの NGINX ウェルカム ページが表示されます。ページが表示されない場合は、NGINX が実行されており、ファイアウォール ルールによってサービスへのアクセスがブロックされていないことを確認してください。

NGINX を構築するための追加のヒント

追加モジュールを使用したNGINXのコンパイル

コンパイルプロセス中に追加のモジュールを含めることで、NGINXの機能を強化します。たとえば、NGINX HTTPプッシュモジュールを追加する場合は、 --add-module フラグを設定手順で指定します。以下のコマンドに従って、NGINX を HTTP プッシュ モジュールでコンパイルします。

./configure --add-module=/path/to/nginx-http-push-module
make
sudo make install

交換する /path/to/nginx-http-push-module 含めたいモジュールへの実際のパスを指定します。

Systemctl コマンドによる NGINX の管理

Ubuntu では、systemctl コマンドを使用して NGINX サービスを簡単に管理できます。ターミナルを使用して NGINX サービスを制御する方法は次のとおりです。

NGINXを起動します:

sudo systemctl start nginx

NGINXを停止します。

sudo systemctl stop nginx

NGINXを再起動します。

sudo systemctl restart nginx

NGINX をリロードします:

sudo systemctl reload nginx

NGINX ステータス チェック

sudo systemctl status nginx

システム起動時にNGINXを有効にする

sudo systemctl enable nginx

システムブート時に NGINX を無効にする:

sudo systemctl disable nginx

結論

このガイドでは、パッケージのインストールからサービスの管理まで、Ubuntu 24.04、22.04、20.04 でソースから NGINX を構築する方法について説明しました。このプロセスにより、追加モジュールを使用して NGINX をカスタマイズし、systemctl を使用して制御できます。最高のパフォーマンスとセキュリティを実現するために、NGINX を最新の状態に保ち、適切に構成してください。設定を試して、Ubuntu で NGINX サーバーを楽しんでください。

ジョシュア・ジェームズ