メインコンテンツへスキップ
  1. ブログ/

Nginx njsとは?AlmaLinux・RHELへのインストール方法

·
Linux AlmaLinux Nginx プログラム
目次

Nginx njsとは?AlmaLinux・RHELへのインストール方法
Nginx njsとは?AlmaLinux・RHELへのインストール方法

njsとは
#

njs(NGINX JavaScript)は、Nginxの設定ファイル内で JavaScript を利用し、リクエストやレスポンスの処理を記述できるようにする公式の動的モジュールとなります。

njs を利用することで、Nginxの標準的なディレクティブだけでは実現が難しい複雑な条件分岐やデータの加工、アクセス制御などを JavaScript で柔軟に実装することができます。

2026年6月23日に、njsの 1.0.0 がリリースされました。

本記事では、この njs(1.0.0) を AlmaLinux 10環境にインストールする方法を解説いたします。

なお、ご紹介する手順は、Rocky Linux や Oracle Linux、RHELなどのRHEL系ディストリビューションでも、同様の手順で導入することが可能となっております。

njsで何ができるか
#

njs を利用することで、Nginxの設定だけでは実現が難しい、次のような処理を実装できます。

  • リクエストやレスポンスの内容を動的に変更する
  • User-AgentやIPアドレスに応じてアクセスを制御する
  • 外部APIと連携して動的に処理を切り替える
  • 条件に応じてブラックリストやホワイトリストを動的に更新する

一般的なJavaScriptとの違い
#

njs は、ブラウザや Node.js で利用されている V8JavaScriptCoremozjs などの実行環境とは異なり、Nginx上での動作に特化した実行環境となります。

そのため、ブラウザの DOM 操作や、Node.js の fshttppath などの標準モジュールは利用できません。

一方で、HTTPリクエストやレスポンスの処理など、Nginx上での処理に特化したAPIが提供されています。

njs ではこれまで独自のjsエンジン(njs engine)が利用されていましたが、njs 1.0.0 からは QuickJS の利用が推奨されています。

インストール方法
#

標準リポジトリでは提供されていない
#

AlmaLinux をはじめとする多くの RHEL 系ディストリビューションでは、標準リポジトリに含まれる Nginx パッケージに njs モジュールは含まれておりません。

標準リポジトリのみを有効化した環境にてインストールを実行すると、以下のようにエラーが表示されます。

$ dnf install nginx-module-njs
No match for argument: nginx-module-njs
Error: Unable to find a match: nginx-module-njs

また、njs はソースコードからビルドし導入することもできますが、依存パッケージのインストールやビルド環境の準備など、導入までに手間がかかります。

そのため、本記事では Nginx公式リポジトリを追加し、簡単にインストールする方法を紹介します。

nginx公式リポジトリの追加
#

初めに以下のコマンドで nginx の公式リポジトリファイルを作成します。

設定ファイル名は任意の名前で作成可能です。

本記事では分かりやすいように nginx.repo という名前で作成しております。

vi /etc/yum.repos.d/nginx.repo

次に以下の内容を記述します。

[nginx-stable]
name=nginx stable repo
baseurl=https://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

[nginx-mainline]
name=nginx mainline repo
baseurl=https://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

なお、リポジトリの設定内容は変更される可能性があるため、必ず Nginx 公式サイトで最新の情報を確認してください。

公式サイト

これらの設定ファイルには、安定版の Stable リポジトリと、最新機能を含む Mainline リポジトリの2つが定義されています。

デフォルトでは Stable が有効、Mainline が無効となっています。

njs の最新版を利用するには以下のコマンドを実行し mainline リポジトリを有効化してください。

dnf config-manager --enable nginx-mainline
dnf config-manager --disable nginx-stable

設定後は、以下のコマンドを実行しリポジトリが正しく有効になっていることを確認してください。

dnf repolist --enabled | fgrep nginx

正常に設定されている場合は、以下のように nginx-mainline が有効なリポジトリとして表示されます。

nginx-mainline          nginx mainline repo

以上で、リポジトリの設定は完了となります。

Nginxとnjsモジュールのインストール
#

それでは、実際に Nginx と njs モジュールのインストールを進めていきます。

以下のコマンドを実行インストールしてください。

dnf install nginx nginx-module-njs

実行すると、以下のようにインストールパッケージの確認画面が表示されます。

Last metadata expiration check: 0:00:04 ago on Sun 28 Jun 2026 06:14:29 PM JST.
Dependencies resolved.
===================================================================================================================================================================================================================================
 Package                                                Architecture                                 Version                                                            Repository                                            Size
===================================================================================================================================================================================================================================
Installing:
 nginx                                                  x86_64                                       2:1.31.2-1.el10.ngx                                                nginx-mainline                                       1.1 M
 nginx-module-njs                                       x86_64                                       1:1.31.2+1.0.0-1.el10.ngx                                          nginx-mainline                                       2.0 M

Transaction Summary
===================================================================================================================================================================================================================================
Install  2 Packages

Total download size: 3.0 M
Installed size: 15 M
Is this ok [y/N]: 

内容を確認し問題なければ y を入力してインストールを進めてください。

外部リポジトリを初めて利用する場合は、GPG キーのインポート確認が表示されます。

先ほど同様に y を入力して続行してください。

Importing GPG key 0xB49F6B46:
 Userid     : "nginx signing key <signing-key-2@nginx.com>"
 Fingerprint: 8540 A6F1 8833 A80E 9C16 53A4 2FD2 1310 B49F 6B46
 From       : https://nginx.org/keys/nginx_signing.key
Is this ok [y/N]: y
Key imported successfully
Importing GPG key 0x7BD9BF62:
 Userid     : "nginx signing key <signing-key@nginx.com>"
 Fingerprint: 573B FD6B 3D8F BC64 1079 A6AB ABF5 BD82 7BD9 BF62
 From       : https://nginx.org/keys/nginx_signing.key
Is this ok [y/N]: y
Key imported successfully
Importing GPG key 0x8D88A2B3:
 Userid     : "nginx signing key <signing-key-3@nginx.com>"
 Fingerprint: 9E9B E90E ACBC DE69 FE9B 204C BCDC D8A3 8D88 A2B3
 From       : https://nginx.org/keys/nginx_signing.key
Is this ok [y/N]: y

インストールが完了すると、次のメッセージが表示されます。

Complete!

インストールの確認
#

次に以下のコマンドを実行し njs モジュールが正しくインストールされているか確認してください。

rpm -q nginx-module-njs

インストールが成功している場合は、以下のようにパッケージ名とバージョンが表示されます。

nginx-module-njs-1.31.2+1.0.0-1.el10.ngx.x86_64

njs のモジュールファイルは、デフォルトで /usr/lib64/nginx/modules/ に配置されます。

以下のコマンドを実行し、モジュールが存在することを確認してください。

ls -l /usr/lib64/nginx/modules/

正常にインストールされている場合は、以下のように js_module ファイルが表示されます。

-rwxr-xr-x. 1 root root 2365944 Jun 23 09:00 ngx_http_js_module-debug.so
-rwxr-xr-x. 1 root root 2357528 Jun 23 09:00 ngx_http_js_module.so
-rwxr-xr-x. 1 root root 2312136 Jun 23 09:00 ngx_stream_js_module-debug.so
-rwxr-xr-x. 1 root root 2299568 Jun 23 09:00 ngx_stream_js_module.so

markdown正常にインストールされている場合は、以下のように js_module ファイルが表示されます。

-rwxr-xr-x. 1 root root 2365944 Jun 23 09:00 ngx_http_js_module-debug.so
-rwxr-xr-x. 1 root root 2357528 Jun 23 09:00 ngx_http_js_module.so
-rwxr-xr-x. 1 root root 2312136 Jun 23 09:00 ngx_stream_js_module-debug.so
-rwxr-xr-x. 1 root root 2299568 Jun 23 09:00 ngx_stream_js_module.so

各モジュールの概要は以下の通りとなっております。

モジュール名 説明
ngx_http_js_module.so HTTPコンテキストでnjsを利用するためのモジュール
ngx_http_js_module-debug.so HTTPコンテキスト向けのデバッグシンボル付きモジュール
ngx_stream_js_module.so TCPやUDPなどStreamコンテキストでnjsを利用するためのモジュール
ngx_stream_js_module-debug.so Streamコンテキスト向けのデバッグシンボル付きモジュール

njsモジュールをロードする
#

njs は標準機能ではなくモジュール化された拡張機能となるためインストールしただけでは、利用することはできません。

njs の機能を利用するには設定ファイルにて、モジュールを読み込む設定を記載する必要があります。

今回は例として /etc/nginx/nginx.conf にて読み込み設定を記述する方法を紹介します。

以下のコマンドを実行しファイルを編集してください。

vi /etc/nginx/nginx.conf

次に以下の内容を最上部に追記してください。

load_module modules/ngx_http_js_module.so;

load_module は、動的モジュールを Nginx へ読み込むためのディレクティブとなります。

設定を保存したら、以下のコマンドで構文に問題がないことを確認してください。

nginx -t

正常に設定されている場合は、以下のように表示されます。

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

構文チェックで問題がなければ、以下のコマンドを実行してサービスを起動してください。

systemctl enable --now nginx

既にサービスが起動中となっている場合は

systemctl restart nginx

以上で、njs モジュールの読み込み設定は完了となります。

まとめ
#

本記事では、Nginx 向け JavaScript 実行環境である njs をAlmaLinux 10環境へ導入する手順を解説しました。

njs を利用することで、標準機能だけでは実現が難しい条件分岐や処理、制御などを柔軟に実装できます。

ぜひとも njs を活用し、Nginxの拡張性を広げてみてください。

関連記事
#

インフラ技術部では njs 以外にも、Nginxに関する情報を発信しています。

興味がある方は、こちらもあわせてご覧ください。

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

関連記事

【簡単ガイド】AlmaLinuxでNginxをインストールする方法
Linux AlmaLinux Nginx Webサーバー
AlmaLinux8でruby2.6以上をインストールする方法
Linux プログラム AlmaLinux
grepでバイナリファイルを除外する方法|-Iオプションの使い方
Grep コマンド AlmaLinux Linux
auditdでファイルの変更を監視する方法
Linux AlmaLinux セキュリティ Auditd
grepで特定のディレクトリを除外して検索する方法(--exclude-dir)
Linux コマンド Grep AlmaLinux
〖初心者向け〗AlmaLinuxにGo言語をインストールする方法|yum(dnf)と手動(公式バイナリ)で導入
AlmaLinux Go Linux Dnf 環境構築