Opensourcetechブログ

OpensourcetechによるNGINX/Zabbix/Neo4j/Linuxなどオープンソース技術に関するブログです。

nginx unit 1.8.0を使ってみる!

こんにちは、LinuCエバンジェリストこと、鯨井貴博@opensourcetechです。

 igore sysoevさんと一緒

 

今回は、最新のnginx unit 1.8.0を使ってアプリケーションサーバを構築してみます。

 

インストール方法は、以下にドキュメントが用意されています。

https://unit.nginx.org/installation/

 

nginx unitをインストールするのはCentOS7です。

[root@localhost ~]# cat /etc/centos-release
CentOS Linux release 7.6.1810 (Core)
[root@localhost ~]# uname -a
Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Fri Apr 20 16:44:24 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

 

 

nginx unitのインストール

nginx unit用のレポジトリファイルを作成し、yumでインストールします。

[root@localhost ~]# vi /etc/yum.repos.d/unit.repo
[root@localhost ~]# cat /etc/yum.repos.d/unit.repo
[unit]
name=nginx unit repo
baseurl=https://packages.nginx.org/unit/centos/$releasever/$basearch/
gpgcheck=0
enabled=1
[root@localhost ~]# yum install unit
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
unit | 2.9 kB 00:00
unit/7/x86_64/primary_db | 40 kB 00:01
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ unit.x86_64 0:1.8.0-1.el7.ngx を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==========================================================================
Package アーキテクチャー
バージョン リポジトリー 容量
==========================================================================
インストール中:
unit x86_64 1.8.0-1.el7.ngx unit 236 k

トランザクションの要約
==========================================================================
インストール 1 パッケージ

総ダウンロード容量: 236 k
インストール容量: 734 k
Is this ok [y/d/N]: y
Downloading packages:
unit-1.8.0-1.el7.ngx.x86_64.rpm | 236 kB 00:04
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : unit-1.8.0-1.el7.ngx.x86_64 1/1
----------------------------------------------------------------------

Thank you for installing NGINX Unit!

Additional modules are available in standalone packages.
To see the available modules, run "yum list available unit-\*".

Online documentation is available at https://unit.nginx.org/

----------------------------------------------------------------------
検証中 : unit-1.8.0-1.el7.ngx.x86_64 1/1

インストール:
unit.x86_64 0:1.8.0-1.el7.ngx

完了しました!
[root@localhost ~]# rpm -q unit
unit-1.8.0-1.el7.ngx.x86_64

 

続いて、各言語(PHP/Python/Go/Perlなど)用のパッケージをインストールします。

[root@localhost ~]# yum install unit-php unit-python unit-go unit-perl unit-devel unit-jsc-common unit-jsc8
読み込んだプラグイン:fastestmirror
Loading mirror speeds from cached hostfile
* base: ftp.iij.ad.jp
* extras: ftp.iij.ad.jp
* updates: ftp.iij.ad.jp
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ unit-devel.x86_64 0:1.8.0-1.el7.ngx を インストール
---> パッケージ unit-go.x86_64 0:1.8.0-1.el7.ngx を インストール
---> パッケージ unit-jsc-common.noarch 0:1.8.0-1.el7.ngx を インストール
---> パッケージ unit-jsc8.x86_64 0:1.8.0-1.el7.ngx を インストール
--> 依存性の処理をしています: libjvm.so(SUNWprivate_1.1)(64bit) のパッケージ: unit-jsc8-1.8.0-1.el7.ngx.x86_64
--> 依存性の処理をしています: libjvm.so()(64bit) のパッケージ: unit-jsc8-1.8.0-1.el7.ngx.x86_64
---> パッケージ unit-perl.x86_64 0:1.8.0-1.el7.ngx を インストール
--> 依存性の処理をしています: libperl.so()(64bit) のパッケージ: unit-perl-1.8.0-1.el7.ngx.x86_64
---> パッケージ unit-php.x86_64 0:1.8.0-1.el7.ngx を インストール
--> 依存性の処理をしています: libphp5-5.4.so()(64bit) のパッケージ: unit-php-1.8.0-1.el7.ngx.x86_64
---> パッケージ unit-python.x86_64 0:1.8.0-1.el7.ngx を インストール
--> トランザクションの確認を実行しています。
---> パッケージ java-11-openjdk-headless.x86_64 1:11.0.1.13-3.el7_6 を インストール
--> 依存性の処理をしています: tzdata-java >= 2015d のパッケージ: 1:java-11-openjdk-headless-11.0.1.13-3.el7_6.x86_64
--> 依存性の処理をしています: copy-jdk-configs >= 3.3 のパッケージ: 1:java-11-openjdk-headless-11.0.1.13-3.el7_6.x86_64
--> 依存性の処理をしています: lksctp-tools(x86-64) のパッケージ: 1:java-11-openjdk-headless-11.0.1.13-3.el7_6.x86_64
--> 依存性の処理をしています: libjpeg.so.62(LIBJPEG_6.2)(64bit) のパッケージ: 1:java-11-openjdk-headless-11.0.1.13-3.el7_6.x86_64
--> 依存性の処理をしています: javapackages-tools のパッケージ: 1:java-11-openjdk-headless-11.0.1.13-3.el7_6.x86_64
--> 依存性の処理をしています: libjpeg.so.62()(64bit) のパッケージ: 1:java-11-openjdk-headless-11.0.1.13-3.el7_6.x86_64
---> パッケージ perl-libs.x86_64 4:5.16.3-294.el7_6 を インストール
--> 依存性の処理をしています: perl(:MODULE_COMPAT_5.16.3) のパッケージ: 4:perl-libs-5.16.3-294.el7_6.x86_64
---> パッケージ php-embedded.x86_64 0:5.4.16-46.el7 を インストール
--> 依存性の処理をしています: php-common(x86-64) = 5.4.16-46.el7 のパッケージ: php-embedded-5.4.16-46.el7.x86_64
--> トランザクションの確認を実行しています。
---> パッケージ copy-jdk-configs.noarch 0:3.3-10.el7_5 を インストール
---> パッケージ javapackages-tools.noarch 0:3.4.1-11.el7 を インストール
--> 依存性の処理をしています: python-javapackages = 3.4.1-11.el7 のパッケージ: javapackages-tools-3.4.1-11.el7.noarch
--> 依存性の処理をしています: libxslt のパッケージ: javapackages-tools-3.4.1-11.el7.noarch
---> パッケージ libjpeg-turbo.x86_64 0:1.2.90-6.el7 を インストール
---> パッケージ lksctp-tools.x86_64 0:1.0.17-2.el7 を インストール
---> パッケージ perl.x86_64 4:5.16.3-294.el7_6 を インストール
--> 依存性の処理をしています: perl(Socket) >= 1.3 のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Scalar::Util) >= 1.10 のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl-macros のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(threads::shared) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(threads) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(constant) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Time::Local) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Time::HiRes) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Storable) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Socket) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Scalar::Util) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Pod::Simple::XHTML) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Pod::Simple::Search) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Getopt::Long) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Filter::Util::Call) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(File::Temp) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(File::Spec::Unix) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(File::Spec::Functions) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(File::Spec) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(File::Path) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Exporter) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Cwd) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
--> 依存性の処理をしています: perl(Carp) のパッケージ: 4:perl-5.16.3-294.el7_6.x86_64
---> パッケージ php-common.x86_64 0:5.4.16-46.el7 を インストール
--> 依存性の処理をしています: libzip.so.2()(64bit) のパッケージ: php-common-5.4.16-46.el7.x86_64
---> パッケージ tzdata-java.noarch 0:2018i-1.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ libxslt.x86_64 0:1.1.28-5.el7 を インストール
---> パッケージ libzip.x86_64 0:0.10.1-8.el7 を インストール
---> パッケージ perl-Carp.noarch 0:1.26-244.el7 を インストール
---> パッケージ perl-Exporter.noarch 0:5.68-3.el7 を インストール
---> パッケージ perl-File-Path.noarch 0:2.09-2.el7 を インストール
---> パッケージ perl-File-Temp.noarch 0:0.23.01-3.el7 を インストール
---> パッケージ perl-Filter.x86_64 0:1.49-3.el7 を インストール
---> パッケージ perl-Getopt-Long.noarch 0:2.40-3.el7 を インストール
--> 依存性の処理をしています: perl(Pod::Usage) >= 1.14 のパッケージ: perl-Getopt-Long-2.40-3.el7.noarch
--> 依存性の処理をしています: perl(Text::ParseWords) のパッケージ: perl-Getopt-Long-2.40-3.el7.noarch
---> パッケージ perl-PathTools.x86_64 0:3.40-5.el7 を インストール
---> パッケージ perl-Pod-Simple.noarch 1:3.28-4.el7 を インストール
--> 依存性の処理をしています: perl(Pod::Escapes) >= 1.04 のパッケージ: 1:perl-Pod-Simple-3.28-4.el7.noarch
--> 依存性の処理をしています: perl(Encode) のパッケージ: 1:perl-Pod-Simple-3.28-4.el7.noarch
---> パッケージ perl-Scalar-List-Utils.x86_64 0:1.27-248.el7 を インストール
---> パッケージ perl-Socket.x86_64 0:2.010-4.el7 を インストール
---> パッケージ perl-Storable.x86_64 0:2.45-3.el7 を インストール
---> パッケージ perl-Time-HiRes.x86_64 4:1.9725-3.el7 を インストール
---> パッケージ perl-Time-Local.noarch 0:1.2300-2.el7 を インストール
---> パッケージ perl-constant.noarch 0:1.27-2.el7 を インストール
---> パッケージ perl-macros.x86_64 4:5.16.3-294.el7_6 を インストール
---> パッケージ perl-threads.x86_64 0:1.87-4.el7 を インストール
---> パッケージ perl-threads-shared.x86_64 0:1.43-6.el7 を インストール
---> パッケージ python-javapackages.noarch 0:3.4.1-11.el7 を インストール
--> 依存性の処理をしています: python-lxml のパッケージ: python-javapackages-3.4.1-11.el7.noarch
--> トランザクションの確認を実行しています。
---> パッケージ perl-Encode.x86_64 0:2.51-7.el7 を インストール
---> パッケージ perl-Pod-Escapes.noarch 1:1.04-294.el7_6 を インストール
---> パッケージ perl-Pod-Usage.noarch 0:1.63-3.el7 を インストール
--> 依存性の処理をしています: perl(Pod::Text) >= 3.15 のパッケージ: perl-Pod-Usage-1.63-3.el7.noarch
--> 依存性の処理をしています: perl-Pod-Perldoc のパッケージ: perl-Pod-Usage-1.63-3.el7.noarch
---> パッケージ perl-Text-ParseWords.noarch 0:3.29-4.el7 を インストール
---> パッケージ python-lxml.x86_64 0:3.2.1-4.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ perl-Pod-Perldoc.noarch 0:3.20-4.el7 を インストール
--> 依存性の処理をしています: perl(parent) のパッケージ: perl-Pod-Perldoc-3.20-4.el7.noarch
--> 依存性の処理をしています: perl(HTTP::Tiny) のパッケージ: perl-Pod-Perldoc-3.20-4.el7.noarch
---> パッケージ perl-podlators.noarch 0:2.5.1-3.el7 を インストール
--> トランザクションの確認を実行しています。
---> パッケージ perl-HTTP-Tiny.noarch 0:0.033-3.el7 を インストール
---> パッケージ perl-parent.noarch 1:0.225-244.el7 を インストール
--> 依存性解決を終了しました。

依存性を解決しました

==========================================================================
Package アーキテクチャー
バージョン リポジトリー
容量
==========================================================================
インストール中:
unit-devel x86_64 1.8.0-1.el7.ngx unit 43 k
unit-go x86_64 1.8.0-1.el7.ngx unit 103 k
unit-jsc-common noarch 1.8.0-1.el7.ngx unit 5.4 M
unit-jsc8 x86_64 1.8.0-1.el7.ngx unit 125 k
unit-perl x86_64 1.8.0-1.el7.ngx unit 43 k
unit-php x86_64 1.8.0-1.el7.ngx unit 38 k
unit-python x86_64 1.8.0-1.el7.ngx unit 39 k
依存性関連でのインストールをします:
copy-jdk-configs noarch 3.3-10.el7_5 base 21 k
java-11-openjdk-headless x86_64 1:11.0.1.13-3.el7_6 updates 38 M
javapackages-tools noarch 3.4.1-11.el7 base 73 k
libjpeg-turbo x86_64 1.2.90-6.el7 base 134 k
libxslt x86_64 1.1.28-5.el7 base 242 k
libzip x86_64 0.10.1-8.el7 base 48 k
lksctp-tools x86_64 1.0.17-2.el7 base 88 k
perl x86_64 4:5.16.3-294.el7_6 updates 8.0 M
perl-Carp noarch 1.26-244.el7 base 19 k
perl-Encode x86_64 2.51-7.el7 base 1.5 M
perl-Exporter noarch 5.68-3.el7 base 28 k
perl-File-Path noarch 2.09-2.el7 base 26 k
perl-File-Temp noarch 0.23.01-3.el7 base 56 k
perl-Filter x86_64 1.49-3.el7 base 76 k
perl-Getopt-Long noarch 2.40-3.el7 base 56 k
perl-HTTP-Tiny noarch 0.033-3.el7 base 38 k
perl-PathTools x86_64 3.40-5.el7 base 82 k
perl-Pod-Escapes noarch 1:1.04-294.el7_6 updates 51 k
perl-Pod-Perldoc noarch 3.20-4.el7 base 87 k
perl-Pod-Simple noarch 1:3.28-4.el7 base 216 k
perl-Pod-Usage noarch 1.63-3.el7 base 27 k
perl-Scalar-List-Utils x86_64 1.27-248.el7 base 36 k
perl-Socket x86_64 2.010-4.el7 base 49 k
perl-Storable x86_64 2.45-3.el7 base 77 k
perl-Text-ParseWords noarch 3.29-4.el7 base 14 k
perl-Time-HiRes x86_64 4:1.9725-3.el7 base 45 k
perl-Time-Local noarch 1.2300-2.el7 base 24 k
perl-constant noarch 1.27-2.el7 base 19 k
perl-libs x86_64 4:5.16.3-294.el7_6 updates 688 k
perl-macros x86_64 4:5.16.3-294.el7_6 updates 44 k
perl-parent noarch 1:0.225-244.el7 base 12 k
perl-podlators noarch 2.5.1-3.el7 base 112 k
perl-threads x86_64 1.87-4.el7 base 49 k
perl-threads-shared x86_64 1.43-6.el7 base 39 k
php-common x86_64 5.4.16-46.el7 base 565 k
php-embedded x86_64 5.4.16-46.el7 base 1.3 M
python-javapackages noarch 3.4.1-11.el7 base 31 k
python-lxml x86_64 3.2.1-4.el7 base 758 k
tzdata-java noarch 2018i-1.el7 updates 187 k

トランザクションの要約
==========================================================================
インストール 7 パッケージ (+39 個の依存関係のパッケージ)

総ダウンロード容量: 59 M
インストール容量: 215 M
Is this ok [y/d/N]: y
Downloading packages:
(1/46): copy-jdk-configs-3.3-10.el7_5.noarch.rpm | 21 kB 00:00
(2/46): libzip-0.10.1-8.el7.x86_64.rpm | 48 kB 00:00
(3/46): javapackages-tools-3.4.1-11.el7.noarch.rpm | 73 kB 00:00
(4/46): lksctp-tools-1.0.17-2.el7.x86_64.rpm | 88 kB 00:00
(5/46): libjpeg-turbo-1.2.90-6.el7.x86_64.rpm | 134 kB 00:00
(6/46): libxslt-1.1.28-5.el7.x86_64.rpm | 242 kB 00:00
(7/46): perl-Exporter-5.68-3.el7.noarch.rpm | 28 kB 00:00
(8/46): perl-File-Path-2.09-2.el7.noarch.rpm | 26 kB 00:00
(9/46): perl-File-Temp-0.23.01-3.el7.noarch.rpm | 56 kB 00:00
(10/46): perl-Filter-1.49-3.el7.x86_64.rpm | 76 kB 00:00
(11/46): perl-Carp-1.26-244.el7.noarch.rpm | 19 kB 00:00
(12/46): perl-Getopt-Long-2.40-3.el7.noarch.rpm | 56 kB 00:00
(13/46): perl-PathTools-3.40-5.el7.x86_64.rpm | 82 kB 00:00
(14/46): perl-HTTP-Tiny-0.033-3.el7.noarch.rpm | 38 kB 00:00
(15/46): perl-Pod-Perldoc-3.20-4.el7.noarch.rpm | 87 kB 00:00
(16/46): perl-Pod-Simple-3.28-4.el7.noarch.rpm | 216 kB 00:00
(17/46): perl-Pod-Escapes-1.04-294.el7_6.noarch.rpm | 51 kB 00:01
(18/46): perl-Scalar-List-Utils-1.27-248.el7.x86_64. | 36 kB 00:00
(19/46): perl-Pod-Usage-1.63-3.el7.noarch.rpm | 27 kB 00:01
(20/46): perl-Socket-2.010-4.el7.x86_64.rpm | 49 kB 00:00
(21/46): perl-Storable-2.45-3.el7.x86_64.rpm | 77 kB 00:00
(22/46): perl-Text-ParseWords-3.29-4.el7.noarch.rpm | 14 kB 00:00
(23/46): perl-Time-HiRes-1.9725-3.el7.x86_64.rpm | 45 kB 00:00
(24/46): perl-constant-1.27-2.el7.noarch.rpm | 19 kB 00:00
(25/46): perl-Time-Local-1.2300-2.el7.noarch.rpm | 24 kB 00:00
(26/46): perl-Encode-2.51-7.el7.x86_64.rpm | 1.5 MB 00:05
(27/46): perl-5.16.3-294.el7_6.x86_64.rpm | 8.0 MB 00:05
(28/46): perl-parent-0.225-244.el7.noarch.rpm | 12 kB 00:00
(29/46): perl-macros-5.16.3-294.el7_6.x86_64.rpm | 44 kB 00:00
(30/46): perl-podlators-2.5.1-3.el7.noarch.rpm | 112 kB 00:00
(31/46): perl-threads-1.87-4.el7.x86_64.rpm | 49 kB 00:00
(32/46): php-common-5.4.16-46.el7.x86_64.rpm | 565 kB 00:00
(33/46): python-javapackages-3.4.1-11.el7.noarch.rpm | 31 kB 00:00
(34/46): perl-libs-5.16.3-294.el7_6.x86_64.rpm | 688 kB 00:01
(35/46): python-lxml-3.2.1-4.el7.x86_64.rpm | 758 kB 00:00
(36/46): perl-threads-shared-1.43-6.el7.x86_64.rpm | 39 kB 00:01
(37/46): php-embedded-5.4.16-46.el7.x86_64.rpm | 1.3 MB 00:01
(38/46): tzdata-java-2018i-1.el7.noarch.rpm | 187 kB 00:00
(39/46): unit-devel-1.8.0-1.el7.ngx.x86_64.rpm | 43 kB 00:01
(40/46): unit-go-1.8.0-1.el7.ngx.x86_64.rpm | 103 kB 00:02
(41/46): unit-jsc8-1.8.0-1.el7.ngx.x86_64.rpm | 125 kB 00:00
(42/46): unit-perl-1.8.0-1.el7.ngx.x86_64.rpm | 43 kB 00:00
(43/46): unit-php-1.8.0-1.el7.ngx.x86_64.rpm | 38 kB 00:00
(44/46): unit-python-1.8.0-1.el7.ngx.x86_64.rpm | 39 kB 00:00
(45/46): java-11-openjdk-headless-11.0.1.13-3.el7_6. | 38 MB 00:21
(46/46): unit-jsc-common-1.8.0-1.el7.ngx.noarch.rpm | 5.4 MB 00:27
--------------------------------------------------------------------------
合計 1.6 MB/s | 59 MB 00:37
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
インストール中 : libxslt-1.1.28-5.el7.x86_64 1/46
インストール中 : python-lxml-3.2.1-4.el7.x86_64 2/46
インストール中 : python-javapackages-3.4.1-11.el7.noar 3/46
インストール中 : javapackages-tools-3.4.1-11.el7.noarc 4/46
インストール中 : 1:perl-parent-0.225-244.el7.noarch 5/46
インストール中 : perl-HTTP-Tiny-0.033-3.el7.noarch 6/46
インストール中 : perl-podlators-2.5.1-3.el7.noarch 7/46
インストール中 : perl-Pod-Perldoc-3.20-4.el7.noarch 8/46
インストール中 : 1:perl-Pod-Escapes-1.04-294.el7_6.noa 9/46
インストール中 : perl-Text-ParseWords-3.29-4.el7.noarc 10/46
インストール中 : perl-Encode-2.51-7.el7.x86_64 11/46
インストール中 : perl-Pod-Usage-1.63-3.el7.noarch 12/46
インストール中 : 4:perl-libs-5.16.3-294.el7_6.x86_64 13/46
インストール中 : 4:perl-macros-5.16.3-294.el7_6.x86_64 14/46
インストール中 : 4:perl-Time-HiRes-1.9725-3.el7.x86_64 15/46
インストール中 : perl-Exporter-5.68-3.el7.noarch 16/46
インストール中 : perl-constant-1.27-2.el7.noarch 17/46
インストール中 : perl-Filter-1.49-3.el7.x86_64 18/46
インストール中 : perl-Time-Local-1.2300-2.el7.noarch 19/46
インストール中 : perl-Carp-1.26-244.el7.noarch 20/46
インストール中 : perl-Storable-2.45-3.el7.x86_64 21/46
インストール中 : perl-PathTools-3.40-5.el7.x86_64 22/46
インストール中 : perl-Scalar-List-Utils-1.27-248.el7.x 23/46
インストール中 : perl-threads-shared-1.43-6.el7.x86_64 24/46
インストール中 : perl-threads-1.87-4.el7.x86_64 25/46
インストール中 : perl-Socket-2.010-4.el7.x86_64 26/46
インストール中 : perl-File-Temp-0.23.01-3.el7.noarch 27/46
インストール中 : perl-File-Path-2.09-2.el7.noarch 28/46
インストール中 : 1:perl-Pod-Simple-3.28-4.el7.noarch 29/46
インストール中 : perl-Getopt-Long-2.40-3.el7.noarch 30/46
インストール中 : 4:perl-5.16.3-294.el7_6.x86_64 31/46
インストール中 : libzip-0.10.1-8.el7.x86_64 32/46
インストール中 : php-common-5.4.16-46.el7.x86_64 33/46
インストール中 : php-embedded-5.4.16-46.el7.x86_64 34/46
インストール中 : lksctp-tools-1.0.17-2.el7.x86_64 35/46
インストール中 : copy-jdk-configs-3.3-10.el7_5.noarch 36/46
インストール中 : libjpeg-turbo-1.2.90-6.el7.x86_64 37/46
インストール中 : tzdata-java-2018i-1.el7.noarch 38/46
インストール中 : 1:java-11-openjdk-headless-11.0.1.13- 39/46
インストール中 : unit-jsc-common-1.8.0-1.el7.ngx.noarc 40/46
----------------------------------------------------------------------

The Java shared packages for NGINX Unit have been installed.

Please find licenses and related information here:
/usr/share/doc/unit-jsc-common/COPYRIGHT

----------------------------------------------------------------------
インストール中 : unit-jsc8-1.8.0-1.el7.ngx.x86_64 41/46
----------------------------------------------------------------------

The Java 8 module for NGINX Unit has been installed.

To check out the sample app, run these commands:

sudo service unit restart
cd /usr/share/doc/unit-jsc8/examples
sudo curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config
curl http://localhost:8800/

Online documentation is available at https://unit.nginx.org

NOTICE:

This version of Unit code is made available in support of the open source
development process. This is an intermediate build made available for
testing purposes only. This Unit code is untested and presumed incompatible
with the JSR 340 Java Servlet 3.1 specification. You should not deploy or
write to this code. You should instead deploy and write production
applications on pre-built binaries that have been tested and certified
to meet the JSR-340 compatibility requirements such as certified binaries
published for the JSR-340 reference implementation available at
https://javaee.github.io/glassfish/.

Redistribution of any Intermediate Build must retain this notice.

Oracle and Java are registered trademarks of Oracle and/or its affiliates.
Other names may be trademarks of their respective owners.

----------------------------------------------------------------------
インストール中 : unit-php-1.8.0-1.el7.ngx.x86_64 42/46
----------------------------------------------------------------------

The PHP module for NGINX Unit has been installed.

To check out the sample app, run these commands:

sudo service unit start
cd /usr/share/doc/unit-php/examples
sudo curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config
curl http://localhost:8300/

Online documentation is available at https://unit.nginx.org

----------------------------------------------------------------------
インストール中 : unit-perl-1.8.0-1.el7.ngx.x86_64 43/46
----------------------------------------------------------------------

The Perl module for NGINX Unit has been installed.

To check out the sample app, run these commands:

sudo service unit start
cd /usr/share/doc/unit-perl/examples
sudo curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config
curl http://localhost:8600/

Online documentation is available at https://unit.nginx.org

----------------------------------------------------------------------
インストール中 : unit-python-1.8.0-1.el7.ngx.x86_64 44/46
----------------------------------------------------------------------

The Python module for NGINX Unit has been installed.

To check the sample app, run these commands:

sudo service unit start
cd /usr/share/doc/unit-python/examples
sudo curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config
curl http://localhost:8400/

Online documentation is available at https://unit.nginx.org

----------------------------------------------------------------------
インストール中 : unit-go-1.8.0-1.el7.ngx.x86_64 45/46
----------------------------------------------------------------------

The Go module for NGINX Unit has been installed.

To check the sample app, run these commands:

GOPATH=/usr/share/gocode go build -o /tmp/go-app /usr/share/doc/unit-go/examples/go-app/let-my-people.go
sudo service unit start
cd /usr/share/doc/unit-go/examples
sudo curl -X PUT --data-binary @unit.config --unix-socket /var/run/unit/control.sock http://localhost/config
curl http://localhost:8500/

Online documentation is available at https://unit.nginx.org

----------------------------------------------------------------------
インストール中 : unit-devel-1.8.0-1.el7.ngx.x86_64 46/46
検証中 : unit-jsc-common-1.8.0-1.el7.ngx.noarc 1/46
検証中 : perl-HTTP-Tiny-0.033-3.el7.noarch 2/46
検証中 : perl-Pod-Perldoc-3.20-4.el7.noarch 3/46
検証中 : perl-threads-shared-1.43-6.el7.x86_64 4/46
検証中 : 4:perl-Time-HiRes-1.9725-3.el7.x86_64 5/46
検証中 : 1:perl-Pod-Escapes-1.04-294.el7_6.noa 6/46
検証中 : perl-Exporter-5.68-3.el7.noarch 7/46
検証中 : perl-constant-1.27-2.el7.noarch 8/46
検証中 : unit-jsc8-1.8.0-1.el7.ngx.x86_64 9/46
検証中 : tzdata-java-2018i-1.el7.noarch 10/46
検証中 : perl-PathTools-3.40-5.el7.x86_64 11/46
検証中 : libjpeg-turbo-1.2.90-6.el7.x86_64 12/46
検証中 : unit-php-1.8.0-1.el7.ngx.x86_64 13/46
検証中 : 1:perl-parent-0.225-244.el7.noarch 14/46
検証中 : unit-perl-1.8.0-1.el7.ngx.x86_64 15/46
検証中 : copy-jdk-configs-3.3-10.el7_5.noarch 16/46
検証中 : python-javapackages-3.4.1-11.el7.noar 17/46
検証中 : 4:perl-libs-5.16.3-294.el7_6.x86_64 18/46
検証中 : perl-Filter-1.49-3.el7.x86_64 19/46
検証中 : perl-File-Temp-0.23.01-3.el7.noarch 20/46
検証中 : 1:perl-Pod-Simple-3.28-4.el7.noarch 21/46
検証中 : perl-Time-Local-1.2300-2.el7.noarch 22/46
検証中 : perl-Text-ParseWords-3.29-4.el7.noarc 23/46
検証中 : lksctp-tools-1.0.17-2.el7.x86_64 24/46
検証中 : 4:perl-macros-5.16.3-294.el7_6.x86_64 25/46
検証中 : 4:perl-5.16.3-294.el7_6.x86_64 26/46
検証中 : perl-Carp-1.26-244.el7.noarch 27/46
検証中 : libxslt-1.1.28-5.el7.x86_64 28/46
検証中 : perl-Storable-2.45-3.el7.x86_64 29/46
検証中 : perl-Scalar-List-Utils-1.27-248.el7.x 30/46
検証中 : javapackages-tools-3.4.1-11.el7.noarc 31/46
検証中 : perl-Pod-Usage-1.63-3.el7.noarch 32/46
検証中 : perl-Encode-2.51-7.el7.x86_64 33/46
検証中 : python-lxml-3.2.1-4.el7.x86_64 34/46
検証中 : perl-podlators-2.5.1-3.el7.noarch 35/46
検証中 : php-embedded-5.4.16-46.el7.x86_64 36/46
検証中 : unit-devel-1.8.0-1.el7.ngx.x86_64 37/46
検証中 : perl-threads-1.87-4.el7.x86_64 38/46
検証中 : 1:java-11-openjdk-headless-11.0.1.13- 39/46
検証中 : perl-Getopt-Long-2.40-3.el7.noarch 40/46
検証中 : libzip-0.10.1-8.el7.x86_64 41/46
検証中 : perl-Socket-2.010-4.el7.x86_64 42/46
検証中 : unit-go-1.8.0-1.el7.ngx.x86_64 43/46
検証中 : perl-File-Path-2.09-2.el7.noarch 44/46
検証中 : php-common-5.4.16-46.el7.x86_64 45/46
検証中 : unit-python-1.8.0-1.el7.ngx.x86_64 46/46

インストール:
unit-devel.x86_64 0:1.8.0-1.el7.ngx
unit-go.x86_64 0:1.8.0-1.el7.ngx
unit-jsc-common.noarch 0:1.8.0-1.el7.ngx
unit-jsc8.x86_64 0:1.8.0-1.el7.ngx
unit-perl.x86_64 0:1.8.0-1.el7.ngx
unit-php.x86_64 0:1.8.0-1.el7.ngx
unit-python.x86_64 0:1.8.0-1.el7.ngx

依存性関連をインストールしました:
copy-jdk-configs.noarch 0:3.3-10.el7_5
java-11-openjdk-headless.x86_64 1:11.0.1.13-3.el7_6
javapackages-tools.noarch 0:3.4.1-11.el7
libjpeg-turbo.x86_64 0:1.2.90-6.el7
libxslt.x86_64 0:1.1.28-5.el7
libzip.x86_64 0:0.10.1-8.el7
lksctp-tools.x86_64 0:1.0.17-2.el7
perl.x86_64 4:5.16.3-294.el7_6
perl-Carp.noarch 0:1.26-244.el7
perl-Encode.x86_64 0:2.51-7.el7
perl-Exporter.noarch 0:5.68-3.el7
perl-File-Path.noarch 0:2.09-2.el7
perl-File-Temp.noarch 0:0.23.01-3.el7
perl-Filter.x86_64 0:1.49-3.el7
perl-Getopt-Long.noarch 0:2.40-3.el7
perl-HTTP-Tiny.noarch 0:0.033-3.el7
perl-PathTools.x86_64 0:3.40-5.el7
perl-Pod-Escapes.noarch 1:1.04-294.el7_6
perl-Pod-Perldoc.noarch 0:3.20-4.el7
perl-Pod-Simple.noarch 1:3.28-4.el7
perl-Pod-Usage.noarch 0:1.63-3.el7
perl-Scalar-List-Utils.x86_64 0:1.27-248.el7
perl-Socket.x86_64 0:2.010-4.el7
perl-Storable.x86_64 0:2.45-3.el7
perl-Text-ParseWords.noarch 0:3.29-4.el7
perl-Time-HiRes.x86_64 4:1.9725-3.el7
perl-Time-Local.noarch 0:1.2300-2.el7
perl-constant.noarch 0:1.27-2.el7
perl-libs.x86_64 4:5.16.3-294.el7_6
perl-macros.x86_64 4:5.16.3-294.el7_6
perl-parent.noarch 1:0.225-244.el7
perl-podlators.noarch 0:2.5.1-3.el7
perl-threads.x86_64 0:1.87-4.el7
perl-threads-shared.x86_64 0:1.43-6.el7
php-common.x86_64 0:5.4.16-46.el7
php-embedded.x86_64 0:5.4.16-46.el7
python-javapackages.noarch 0:3.4.1-11.el7
python-lxml.x86_64 0:3.2.1-4.el7
tzdata-java.noarch 0:2018i-1.el7

完了しました!
[root@localhost ~]# rpm -qa | grep unit-*
unit-devel-1.8.0-1.el7.ngx.x86_64
unit-perl-1.8.0-1.el7.ngx.x86_64
unit-go-1.8.0-1.el7.ngx.x86_64
unit-1.8.0-1.el7.ngx.x86_64
unit-jsc-common-1.8.0-1.el7.ngx.noarch
unit-php-1.8.0-1.el7.ngx.x86_64
unit-python-1.8.0-1.el7.ngx.x86_64
unit-jsc8-1.8.0-1.el7.ngx.x86_64

 

 

nginx unitの起動

nginx unitを起動します。

nginx unitの3プロセス(main/controller/router)プロセスが動作しています。

[root@localhost ~]# systemctl status unit
● unit.service - NGINX Unit
Loaded: loaded (/usr/lib/systemd/system/unit.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[root@localhost ~]# systemctl start unit
[root@localhost ~]# systemctl status unit
● unit.service - NGINX Unit
Loaded: loaded (/usr/lib/systemd/system/unit.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2019-03-03 17:54:06 JST; 5s ago
Main PID: 29032 (unitd)
CGroup: /system.slice/unit.service
├─29032 unit: main v1.8.0 [/usr/sbin/unitd --log /var/log/un...
├─29034 unit: controller
└─29035 unit: router

3月 03 17:54:06 localhost.localdomain systemd[1]: Stopped NGINX Unit.
3月 03 17:54:06 localhost.localdomain systemd[1]: Started NGINX Unit.
3月 03 17:54:06 localhost.localdomain unitd[29032]: 2019/03/03 17:54:...
3月 03 17:54:06 localhost.localdomain overy[29033]: [alert] 29033#290...
Hint: Some lines were ellipsized, use -l to show in full.

 

 

アプリケーションファイル(PHP)の設定追加

nginx unitはダイナミックな設定変更が行えることが一つの特徴です。

設定変更時には、「control.sock」を指定して実行します。

※CentOSの場合は/var/run/unit/に、Debianの場合は/var/runなどディストリビューションによって、パスが異なります。

[root@localhost ~]# curl --unix-socket /var/run/unit/
control.sock unit.pid
[root@localhost ~]# curl --unix-socket /var/run/unit/control.sock http://localhost/config・・・初期設定の確認
{
  "listeners": {},
  "applications": {}
}

 

 PHPのコンテンツファイル(/www/blogs/scripts/index.php)やnginx unitの追加設定ファイル(JSON)を作成し、適用します。

設定を適用したあとは、作成したアプリケーションプロセス(blogs)が20起動しているのが確認できます。

※SELinuxなどのセキュリティモジュールやiptables/Firewalldなどのファイアウォールは、適切な設定をするなどしてください。

SELinuxのトラブルシュート(setroubleshoot / setools / sealeart) - Opensourcetechブログ

firewalldを攻略する!! - Opensourcetechブログ

[root@localhost ~]# mkdir -p /www/blogs/scripts/
[root@localhost ~]# vi /www/blogs/scripts/index.php
[root@localhost ~]# cat /www/blogs/scripts/index.php・・・PHPのコンテンツ
<?php
phpinfo();
?>
[root@localhost ~]# vi /var/tmp/start.json
[root@localhost ~]# cat /var/tmp/start.json・・・nginx unitの追加設定
{
  "listeners": {
   "*:8888": {
        "application": "blogs"
  }
  },

 

 "applications": {
   "blogs": {
     "type": "php",
     "processes": 20,
     "root": "/www/blogs/scripts",
     "index": "index.php"
     }
  }
}
[root@localhost ~]# curl -X PUT -d @/var/tmp/start.json --unix-socket /var/run/unit/control.sock http://localhost/config/・・・設定追加
{
"success": "Reconfiguration done."
}
[root@localhost ~]# curl --unix-socket /var/run/unit/control.sock http://localhost/config・・・設定確認
{
  "listeners": {
   "*:8888": {
    "application": "blogs"
   }
 },

 "applications": {
   "blogs": {
    "type": "php",
    "processes": 20,
    "root": "/www/blogs/scripts",
    "index": "index.php"
    }
  }
}
[root@localhost ~]# systemctl status unit
● unit.service - NGINX Unit
Loaded: loaded (/usr/lib/systemd/system/unit.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2019-03-03 17:54:06 JST; 1h 47min ago
Main PID: 29032 (unitd)
CGroup: /system.slice/unit.service
├─11286 unit: "blogs" application
├─11288 unit: "blogs" application
├─11289 unit: "blogs" application
├─11290 unit: "blogs" application
├─11291 unit: "blogs" application
├─11292 unit: "blogs" application
├─11293 unit: "blogs" application
├─11294 unit: "blogs" application
├─11295 unit: "blogs" application
├─11296 unit: "blogs" application
├─11297 unit: "blogs" application
├─11298 unit: "blogs" application
├─11299 unit: "blogs" application
├─11300 unit: "blogs" application
├─11301 unit: "blogs" application
├─11302 unit: "blogs" application
├─11303 unit: "blogs" application
├─11304 unit: "blogs" application
├─11305 unit: "blogs" application
├─11306 unit: "blogs" application
├─29032 unit: main v1.8.0 [/usr/sbin/unitd --log /var/log/un...
├─29034 unit: controller
└─29035 unit: router

3月 03 17:54:06 localhost.localdomain systemd[1]: Stopped NGINX Unit.
3月 03 17:54:06 localhost.localdomain systemd[1]: Started NGINX Unit.
3月 03 17:54:06 localhost.localdomain unitd[29032]: 2019/03/03 17:54:...
3月 03 17:54:06 localhost.localdomain overy[29033]: [alert] 29033#290...
Hint: Some lines were ellipsized, use -l to show in full.

 

起動したアプリケーションプロセス(PHP)にアクセスすると、

作成されたコンテンツが帰ってきました。

f:id:opensourcetech:20190303202109p:plain

 

 

 

設定変更

変更も同様に設定ファイル(JSON)を作成し、動的読み込みをすると反映できます。

以下の例だと、プロセス数を20から10に減少させています。

 

[root@localhost ~]# vi /var/tmp/config1.json
[root@localhost ~]# cat /var/tmp/config1.json
{
  "listeners": {
   "*:8888": {
    "application": "blogs"
    }
   },

  "applications": {
    "blogs": {
     "type": "php",
     "processes": 10,
     "root": "/www/blogs/scripts",
     "index": "index.php"
     }
   }
}
[root@localhost ~]# curl -X PUT -d @/var/tmp/config1.json --unix-socket /var/run/unit/control.sock http://localhost/config
{
"success": "Reconfiguration done."
}
[root@localhost ~]# curl --unix-socket /var/run/unit/control.sock http://localhost/config
{
  "listeners": {
   "*:8888": {
     "application": "blogs"
     }
   },

  "applications": {
     "blogs": {
      "type": "php",
      "processes": 10,
      "root": "/www/blogs/scripts",
      "index": "index.php"
      }
    }
}
[root@localhost ~]# systemctl status unit
● unit.service - NGINX Unit
Loaded: loaded (/usr/lib/systemd/system/unit.service; disabled; vendor preset: disabled)
Active: active (running) since 日 2019-03-03 17:54:06 JST; 1h 51min ago
Main PID: 29032 (unitd)
CGroup: /system.slice/unit.service
├─11513 unit: "blogs" application
├─11514 unit: "blogs" application
├─11515 unit: "blogs" application
├─11516 unit: "blogs" application
├─11517 unit: "blogs" application
├─11518 unit: "blogs" application
├─11519 unit: "blogs" application
├─11520 unit: "blogs" application
├─11521 unit: "blogs" application
├─11522 unit: "blogs" application
├─29032 unit: main v1.8.0 [/usr/sbin/unitd --log /var/log/un...
├─29034 unit: controller
└─29035 unit: router

3月 03 17:54:06 localhost.localdomain systemd[1]: Stopped NGINX Unit.
3月 03 17:54:06 localhost.localdomain systemd[1]: Started NGINX Unit.
3月 03 17:54:06 localhost.localdomain unitd[29032]: 2019/03/03 17:54:...
3月 03 17:54:06 localhost.localdomain overy[29033]: [alert] 29033#290...
Hint: Some lines were ellipsized, use -l to show in full.

 

 

今回は、PHPファイルを使用しましたが、

その他対応言語(Python/Perl/Go/Node.js/)などのアプリケーションプロセスを複数立ち上げることがnginx unitでは可能となります。

 

 

www.slideshare.net

github.com

www.facebook.com

twitter.com

www.instagram.com

 

 

にほんブログ村 IT技術ブログ Linuxへ
Linux

にほんブログ村 IT技術ブログ オープンソースへ
オープンソース

 

 

Opensourcetech by Takahiro Kujirai