Opensourcetechブログ

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

nginx 1.19.2 + njs-0.4.3の環境構築 on CentOS8


LinuCエヴァンジェリストの鯨井貴博@opensourcetechです。

nginx 1.19.2 + njs-0.4.3による環境作成を実施します。
OSは、以下の記事でMinimalインストールしたCentOS8を使用しています。
CentOS8のインストール - Opensourcetechブログ CentOS8のカーネル再構築(Linux kernel 5.7.10) - Opensourcetechブログ

[root@centos8test ~]# uname -r
5.7.10
[root@centos8test ~]# cat /etc/centos-release
CentOS Linux release 8.2.2004 (Core)



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

[root@centos8test ~]# cd /etc/yum.repos.d/
[root@centos8test yum.repos.d]# vi nginx.repo
[root@centos8test yum.repos.d]# cat nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://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=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=0
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true



続いて、yum-utilsのインストール。

[root@centos8test yum.repos.d]# yum install yum-utils
CentOS-8 - AppStream                            1.8 kB/s | 4.3 kB     00:02
CentOS-8 - AppStream                            3.6 MB/s | 5.8 MB     00:01
CentOS-8 - Base                                 2.8 kB/s | 3.9 kB     00:01
CentOS-8 - Base                                 1.2 MB/s | 2.2 MB     00:01
CentOS-8 - Extras                               1.8 kB/s | 1.5 kB     00:00
CentOS-8 - Extras                               7.8 kB/s | 7.3 kB     00:00
nginx stable repo                               8.7 kB/s |  16 kB     00:01
依存関係が解決しました。
================================================================================
 パッケージ         Arch            バージョン            リポジトリー    サイズ
================================================================================
インストール中:
 yum-utils          noarch          4.0.12-3.el8          BaseOS           66 k

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

ダウンロードサイズの合計: 66 k
インストール済みのサイズ: 20 k
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
yum-utils-4.0.12-3.el8.noarch.rpm               214 kB/s |  66 kB     00:00
--------------------------------------------------------------------------------
合計                                             60 kB/s |  66 kB     00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                       1/1
  インストール中    : yum-utils-4.0.12-3.el8.noarch                         1/1
  scriptlet の実行中: yum-utils-4.0.12-3.el8.noarch                         1/1
  検証              : yum-utils-4.0.12-3.el8.noarch                         1/1

インストール済み:
  yum-utils-4.0.12-3.el8.noarch

完了しました!



そして、レポジトリ「nginx-mainline」を有効化(enabled=1)します。
※レポジトリファイル作成時に予め有効にしておいても同じです。

[root@centos8test yum.repos.d]# yum-config-manager --enable nginx-mainline
[root@centos8test yum.repos.d]# cat nginx.repo
[nginx-stable]
name=nginx stable repo
baseurl=http://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=http://nginx.org/packages/mainline/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true



nginxのインストール。

[root@centos8test yum.repos.d]# yum install nginx
nginx stable repo                               3.7 kB/s | 2.9 kB     00:00
nginx mainline repo                              22 kB/s |  44 kB     00:01
依存関係が解決しました。
================================================================================
 パッケージ  Arch         バージョン                 リポジトリー         サイズ
================================================================================
インストール中:
 nginx       x86_64       1:1.19.2-1.el8.ngx         nginx-mainline       815 k

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

ダウンロードサイズの合計: 815 k
インストール済みのサイズ: 3.7 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
nginx-1.19.2-1.el8.ngx.x86_64.rpm               147 kB/s | 815 kB     00:05
--------------------------------------------------------------------------------
合計                                            147 kB/s | 815 kB     00:05
警告: /var/cache/dnf/nginx-mainline-f354473966140c6b/packages/nginx-1.19.2-1.el8.ngx.x86_64.rpm: ヘッダー V4 RSA/SHA1 Signature、鍵 ID 7bd9bf62: NOKEY
nginx mainline repo                             1.1 kB/s | 1.5 kB     00:01
GPG 鍵 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
これでよろしいですか? [y/N]: y
鍵のインポートに成功しました
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                       1/1
  scriptlet の実行中: nginx-1:1.19.2-1.el8.ngx.x86_64                       1/1
  インストール中    : nginx-1:1.19.2-1.el8.ngx.x86_64                       1/1
  scriptlet の実行中: nginx-1:1.19.2-1.el8.ngx.x86_64                       1/1
----------------------------------------------------------------------

Thanks for using nginx!

Please find the official documentation for nginx here:
* http://nginx.org/en/docs/

Please subscribe to nginx-announce mailing list to get
the most important news about nginx:
* http://nginx.org/en/support.html

Commercial subscriptions for nginx are available on:
* http://nginx.com/products/

----------------------------------------------------------------------

  検証              : nginx-1:1.19.2-1.el8.ngx.x86_64                       1/1

インストール済み:
  nginx-1:1.19.2-1.el8.ngx.x86_64

完了しました!
[root@centos8test yum.repos.d]# rpm -q nginx
nginx-1.19.2-1.el8.ngx.x86_64



続いて、njsのインストール。
nginxパッケージと同じレポジトリにあります。
f:id:opensourcetech:20200812185611p:plain http://nginx.org/packages/centos/8/x86_64/RPMS/

[root@centos8test yum.repos.d]# yum search nginx-module-njs
メタデータの期限切れの最終確認: 0:59:22 時間前の 2020年08月12日 17時55分55秒 に 実施しました。
======================= 名前 完全一致: nginx-module-njs ========================
nginx-module-njs.x86_64 : nginx njs dynamic modules
====================== 名前 & 概要 一致: nginx-module-njs ======================
nginx-module-njs-debuginfo.x86_64 : Debug information for package
                                  : nginx-module-njs
[root@centos8test yum.repos.d]# yum install nginx-module-njs
メタデータの期限切れの最終確認: 1:01:13 時間前の 2020年08月12日 17時55分55秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ         Arch     バージョン                  リポジトリー     サイズ
================================================================================
インストール中:
 nginx-module-njs   x86_64   1:1.19.2.0.4.3-1.el8.ngx    nginx-mainline   421 k

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

ダウンロードサイズの合計: 421 k
インストール済みのサイズ: 3.4 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
nginx-module-njs-1.19.2.0.4.3-1.el8.ngx.x86_64. 103 kB/s | 421 kB     00:04
--------------------------------------------------------------------------------
合計                                            103 kB/s | 421 kB     00:04
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                       1/1
  インストール中    : nginx-module-njs-1:1.19.2.0.4.3-1.el8.ngx.x86_64      1/1
  scriptlet の実行中: nginx-module-njs-1:1.19.2.0.4.3-1.el8.ngx.x86_64      1/1
----------------------------------------------------------------------

The njs dynamic modules for nginx have been installed.
To enable these modules, add the following to /etc/nginx/nginx.conf
and reload nginx:

    load_module modules/ngx_http_js_module.so;
    load_module modules/ngx_stream_js_module.so;

Please refer to the modules documentation for further details:
http://nginx.org/en/docs/njs/
http://nginx.org/en/docs/http/ngx_http_js_module.html
http://nginx.org/en/docs/stream/ngx_stream_js_module.html

----------------------------------------------------------------------

  検証              : nginx-module-njs-1:1.19.2.0.4.3-1.el8.ngx.x86_64      1/1

インストール済み:
  nginx-module-njs-1:1.19.2.0.4.3-1.el8.ngx.x86_64

完了しました!
[root@centos8test yum.repos.d]# rpm -q nginx-module-njs
nginx-module-njs-1.19.2.0.4.3-1.el8.ngx.x86_64
root@centos8test yum.repos.d]# yum install nginx-module-njs-debuginfo
メタデータの期限切れの最終確認: 1:05:02 時間前の 2020年08月12日 17時55分55秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                Arch   バージョン               リポジトリー   サイズ
================================================================================
インストール中:
 nginx-module-njs-debuginfo
                           x86_64 1:1.19.2.0.4.3-1.el8.ngx nginx-mainline 3.2 M

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

ダウンロードサイズの合計: 3.2 M
インストール済みのサイズ: 13 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
nginx-module-njs-debuginfo-1.19.2.0.4.3-1.el8.n 172 kB/s | 3.2 MB     00:19
--------------------------------------------------------------------------------
合計                                            172 kB/s | 3.2 MB     00:19
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                       1/1
  インストール中    : nginx-module-njs-debuginfo-1:1.19.2.0.4.3-1.el8.ngx   1/1
  scriptlet の実行中: nginx-module-njs-debuginfo-1:1.19.2.0.4.3-1.el8.ngx   1/1
  検証              : nginx-module-njs-debuginfo-1:1.19.2.0.4.3-1.el8.ngx   1/1

インストール済み:
  nginx-module-njs-debuginfo-1:1.19.2.0.4.3-1.el8.ngx.x86_64

完了しました!
[root@centos8test yum.repos.d]# rpm -q nginx-module-njs-debuginfo
nginx-module-njs-debuginfo-1.19.2.0.4.3-1.el8.ngx.x86_64



njsを使うための設定。

[root@centos8test nginx]# cd /etc/nginx/
[root@centos8test nginx]# ls
conf.d          koi-utf  mime.types  nginx.conf   uwsgi_params
fastcgi_params  koi-win  modules     scgi_params  win-utf
conf.d          http.js  koi-win     modules     scgi_params   win-utf
fastcgi_params  koi-utf  mime.types  nginx.conf  uwsgi_params
[root@centos8test nginx]# vi nginx.conf
[root@centos8test nginx]# cat nginx.conf

user  nginx;
worker_processes  1;

error_log  /var/log/nginx/error.log warn;
pid        /var/run/nginx.pid;

load_module modules/ngx_http_js_module.so;    <------追記

events {
    worker_connections  1024;
}


http {                                                                         <------追記(ここから)
    js_import http.js;

    server {
        listen 8000;

        location / {
            js_content http.hello;
        }
    }
}                                                                                <------追記(ここまで)

#http {                                                                      <------これ以降、すべてコメントアウト
#    include       /etc/nginx/mime.types;
#    default_type  application/octet-stream;
#
#    log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '
#                      '$status $body_bytes_sent "$http_referer" '
#                      '"$http_user_agent" "$http_x_forwarded_for"';
#
#    access_log  /var/log/nginx/access.log  main;
#
#    sendfile        on;
#    #tcp_nopush     on;
#
#    keepalive_timeout  65;
#
#    #gzip  on;
#
#    include /etc/nginx/conf.d/*.conf;
#}



そして、Javascriptファイル(Hello,world)を用意します。

[root@centos8test nginx]# vi http.js
[root@centos8test nginx]# cat http.js
function hello(r) {
    r.return(200, "Hello world!");
}

export default {hello};
[root@centos8test nginx]# pwd
/etc/nginx



nginxの起動。
まさかの失敗。。。

[root@centos8test nginx]# systemctl start nginx
Job for nginx.service failed because the control process exited with error code.
See "systemctl status nginx.service" and "journalctl -xe" for details.



どうもSELinuxが気になります。
SELinuxのログであるaudit.logを確認すると、当たりでした。

[root@centos8test nginx]# tail -f /var/log/audit/audit.log
type=AVC msg=audit(1597230643.130:160): avc:  denied  { name_bind } for  pid=1977 comm="nginx" src=8000 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:soundd_port_t:s0 tclass=tcp_socket permissive=0
type=SYSCALL msg=audit(1597230643.130:160): arch=c000003e syscall=49 success=no exit=-13 a0=8 a1=5556b1704140 a2=10 a3=7ffd399fafb0 items=0 ppid=1 pid=1977 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="nginx" exe="/usr/sbin/nginx" subj=system_u:system_r:httpd_t:s0 key=(null)ARCH=x86_64 SYSCALL=bind AUID="unset" UID="root" GID="root" EUID="root" SUID="root" FSUID="root" EGID="root" SGID="root" FSGID="root"
type=PROCTITLE msg=audit(1597230643.130:160): proctitle=2F7573722F7362696E2F6E67696E78002D63002F6574632F6E67696E782F6E67696E782E636F6E66
type=SERVICE_START msg=audit(1597230643.135:161): pid=1 uid=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:init_t:s0 msg='unit=nginx comm="systemd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=failed'UID="root" AUID="unset"



では、SELinuxのトラブルシュート。
setroubleshootパッケージをインストールします。
これで、/var/log/messagesにSELinuxでどう対応すればいいかログ出力してくれます。

[root@centos8test nginx]# yum install setroubleshoot
メタデータの期限切れの最終確認: 2:16:35 時間前の 2020年08月12日 17時55分55秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ                      Arch   バージョン              Repo      サイズ
================================================================================
インストール中:
 setroubleshoot                  x86_64 3.3.22-2.el8            AppStream 133 k
依存関係のインストール中:
 adwaita-cursor-theme            noarch 3.28.0-2.el8            AppStream 647 k
 adwaita-icon-theme              noarch 3.28.0-2.el8            AppStream  11 M
 at-spi2-atk                     x86_64 2.26.2-1.el8            AppStream  89 k
 at-spi2-core                    x86_64 2.28.0-1.el8            AppStream 169 k
 augeas-libs                     x86_64 1.12.0-5.el8            BaseOS    436 k
 cairo-gobject                   x86_64 1.15.12-3.el8           AppStream  33 k
 checkpolicy                     x86_64 2.9-1.el8               BaseOS    348 k
 colord-libs                     x86_64 1.4.2-1.el8             AppStream 236 k
 desktop-file-utils              x86_64 0.23-8.el8              AppStream  80 k
 glib-networking                 x86_64 2.56.1-1.1.el8          BaseOS    155 k
 gsettings-desktop-schemas       x86_64 3.32.0-4.el8            BaseOS    632 k
 gtk3                            x86_64 3.22.30-5.el8           AppStream 4.5 M
 json-glib                       x86_64 1.4.4-1.el8             BaseOS    144 k
 libXtst                         x86_64 1.2.3-7.el8             AppStream  22 k
 libepoxy                        x86_64 1.5.3-1.el8             AppStream 225 k
 libgusb                         x86_64 0.3.0-1.el8             BaseOS     49 k
 libmodman                       x86_64 2.0.1-17.el8            BaseOS     36 k
 libnotify                       x86_64 0.7.7-5.el8             AppStream  47 k
 libproxy                        x86_64 0.4.15-5.2.el8          BaseOS     75 k
 libreport                       x86_64 2.9.5-10.el8            AppStream 498 k
 libreport-gtk                   x86_64 2.9.5-10.el8            AppStream  88 k
 libreport-plugin-reportuploader x86_64 2.9.5-10.el8            AppStream  46 k
 libreport-web                   x86_64 2.9.5-10.el8            AppStream  39 k
 libsoup                         x86_64 2.62.3-1.el8            BaseOS    424 k
 libtar                          x86_64 1.2.20-15.el8           AppStream  42 k
 libwayland-client               x86_64 1.17.0-1.el8            AppStream  39 k
 libwayland-cursor               x86_64 1.17.0-1.el8            AppStream  26 k
 libwayland-egl                  x86_64 1.17.0-1.el8            AppStream  19 k
 libxkbcommon                    x86_64 0.9.1-1.el8             AppStream 116 k
 lz4                             x86_64 1.8.1.2-4.el8           BaseOS     92 k
 policycoreutils-python-utils    noarch 2.9-9.el8               BaseOS    251 k
 python3-audit                   x86_64 3.0-0.17.20191104git1c2f876.el8
                                                                BaseOS     86 k
 python3-cairo                   x86_64 1.16.3-6.el8            AppStream  90 k
 python3-gobject                 x86_64 3.28.3-1.el8            AppStream  25 k
 python3-libreport               x86_64 2.9.5-10.el8            AppStream  58 k
 python3-libsemanage             x86_64 2.9-2.el8               BaseOS    127 k
 python3-policycoreutils         noarch 2.9-9.el8               BaseOS    2.2 M
 python3-pydbus                  noarch 0.6.0-5.el8             AppStream  53 k
 python3-setools                 x86_64 4.2.2-2.el8             BaseOS    601 k
 python3-systemd                 x86_64 234-8.el8               AppStream  81 k
 rest                            x86_64 0.8.1-2.el8             AppStream  70 k
 satyr                           x86_64 0.26-2.el8              AppStream 114 k
 setroubleshoot-plugins          noarch 3.3.11-2.el8            AppStream 360 k
 setroubleshoot-server           x86_64 3.3.22-2.el8            AppStream 398 k
 xdg-utils                       noarch 1.1.2-5.el8             AppStream  84 k
 xkeyboard-config                noarch 2.28-1.el8              AppStream 782 k
 xmlrpc-c                        x86_64 1.51.0-5.el8            BaseOS    212 k
 xmlrpc-c-client                 x86_64 1.51.0-5.el8            BaseOS     40 k
弱い依存関係のインストール中:
 abattis-cantarell-fonts         noarch 0.0.25-4.el8            AppStream 155 k
 dconf                           x86_64 0.28.0-3.el8            AppStream 109 k

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

ダウンロードサイズの合計: 27 M
インストール済みのサイズ: 80 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/51): abattis-cantarell-fonts-0.0.25-4.el8.no 479 kB/s | 155 kB     00:00
(2/51): at-spi2-atk-2.26.2-1.el8.x86_64.rpm     1.7 MB/s |  89 kB     00:00
(3/51): at-spi2-core-2.28.0-1.el8.x86_64.rpm    2.5 MB/s | 169 kB     00:00
(4/51): cairo-gobject-1.15.12-3.el8.x86_64.rpm  1.9 MB/s |  33 kB     00:00
(5/51): adwaita-cursor-theme-3.28.0-2.el8.noarc 1.2 MB/s | 647 kB     00:00
(6/51): colord-libs-1.4.2-1.el8.x86_64.rpm      2.5 MB/s | 236 kB     00:00
(7/51): desktop-file-utils-0.23-8.el8.x86_64.rp 1.9 MB/s |  80 kB     00:00
(8/51): dconf-0.28.0-3.el8.x86_64.rpm           1.1 MB/s | 109 kB     00:00
(9/51): libXtst-1.2.3-7.el8.x86_64.rpm          1.4 MB/s |  22 kB     00:00
(10/51): libepoxy-1.5.3-1.el8.x86_64.rpm        1.4 MB/s | 225 kB     00:00
(11/51): libnotify-0.7.7-5.el8.x86_64.rpm       1.1 MB/s |  47 kB     00:00
(12/51): libreport-2.9.5-10.el8.x86_64.rpm      1.6 MB/s | 498 kB     00:00
(13/51): libreport-gtk-2.9.5-10.el8.x86_64.rpm  1.6 MB/s |  88 kB     00:00
(14/51): libreport-plugin-reportuploader-2.9.5- 1.3 MB/s |  46 kB     00:00
(15/51): libreport-web-2.9.5-10.el8.x86_64.rpm  1.5 MB/s |  39 kB     00:00
(16/51): libtar-1.2.20-15.el8.x86_64.rpm        1.6 MB/s |  42 kB     00:00
(17/51): libwayland-client-1.17.0-1.el8.x86_64. 1.6 MB/s |  39 kB     00:00
(18/51): libwayland-cursor-1.17.0-1.el8.x86_64. 854 kB/s |  26 kB     00:00
(19/51): libwayland-egl-1.17.0-1.el8.x86_64.rpm 1.0 MB/s |  19 kB     00:00
(20/51): libxkbcommon-0.9.1-1.el8.x86_64.rpm    1.8 MB/s | 116 kB     00:00
(21/51): python3-cairo-1.16.3-6.el8.x86_64.rpm  1.8 MB/s |  90 kB     00:00
(22/51): python3-gobject-3.28.3-1.el8.x86_64.rp 1.0 MB/s |  25 kB     00:00
(23/51): python3-libreport-2.9.5-10.el8.x86_64. 939 kB/s |  58 kB     00:00
(24/51): python3-pydbus-0.6.0-5.el8.noarch.rpm  1.3 MB/s |  53 kB     00:00
(25/51): python3-systemd-234-8.el8.x86_64.rpm   1.4 MB/s |  81 kB     00:00
(26/51): rest-0.8.1-2.el8.x86_64.rpm            1.5 MB/s |  70 kB     00:00
(27/51): satyr-0.26-2.el8.x86_64.rpm            2.1 MB/s | 114 kB     00:00
(28/51): setroubleshoot-3.3.22-2.el8.x86_64.rpm 1.8 MB/s | 133 kB     00:00
(29/51): setroubleshoot-plugins-3.3.11-2.el8.no 2.0 MB/s | 360 kB     00:00
(30/51): setroubleshoot-server-3.3.22-2.el8.x86 2.2 MB/s | 398 kB     00:00
(31/51): xdg-utils-1.1.2-5.el8.noarch.rpm       1.5 MB/s |  84 kB     00:00
(32/51): gtk3-3.22.30-5.el8.x86_64.rpm          2.2 MB/s | 4.5 MB     00:02
(33/51): xkeyboard-config-2.28-1.el8.noarch.rpm 1.7 MB/s | 782 kB     00:00
(34/51): checkpolicy-2.9-1.el8.x86_64.rpm       614 kB/s | 348 kB     00:00
(35/51): augeas-libs-1.12.0-5.el8.x86_64.rpm    533 kB/s | 436 kB     00:00
(36/51): glib-networking-2.56.1-1.1.el8.x86_64. 478 kB/s | 155 kB     00:00
(37/51): adwaita-icon-theme-3.28.0-2.el8.noarch 3.0 MB/s |  11 MB     00:03
(38/51): json-glib-1.4.4-1.el8.x86_64.rpm       382 kB/s | 144 kB     00:00
(39/51): libgusb-0.3.0-1.el8.x86_64.rpm         181 kB/s |  49 kB     00:00
(40/51): libmodman-2.0.1-17.el8.x86_64.rpm      136 kB/s |  36 kB     00:00
(41/51): gsettings-desktop-schemas-3.32.0-4.el8 666 kB/s | 632 kB     00:00
(42/51): libproxy-0.4.15-5.2.el8.x86_64.rpm     260 kB/s |  75 kB     00:00
(43/51): policycoreutils-python-utils-2.9-9.el8 1.3 MB/s | 251 kB     00:00
(44/51): libsoup-2.62.3-1.el8.x86_64.rpm        1.1 MB/s | 424 kB     00:00
(45/51): lz4-1.8.1.2-4.el8.x86_64.rpm           303 kB/s |  92 kB     00:00
(46/51): python3-audit-3.0-0.17.20191104git1c2f 771 kB/s |  86 kB     00:00
(47/51): python3-libsemanage-2.9-2.el8.x86_64.r 416 kB/s | 127 kB     00:00
(48/51): xmlrpc-c-1.51.0-5.el8.x86_64.rpm       646 kB/s | 212 kB     00:00
(49/51): python3-setools-4.2.2-2.el8.x86_64.rpm 656 kB/s | 601 kB     00:00
(50/51): xmlrpc-c-client-1.51.0-5.el8.x86_64.rp  73 kB/s |  40 kB     00:00
(51/51): python3-policycoreutils-2.9-9.el8.noar 1.7 MB/s | 2.2 MB     00:01
--------------------------------------------------------------------------------
合計                                            3.1 MB/s |  27 MB     00:08
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                       1/1
  インストール中    : augeas-libs-1.12.0-5.el8.x86_64                      1/51
  scriptlet の実行中: augeas-libs-1.12.0-5.el8.x86_64                      1/51
  インストール中    : satyr-0.26-2.el8.x86_64                              2/51
  scriptlet の実行中: satyr-0.26-2.el8.x86_64                              2/51
  インストール中    : libtar-1.2.20-15.el8.x86_64                          3/51
  インストール中    : xmlrpc-c-1.51.0-5.el8.x86_64                         4/51
  インストール中    : cairo-gobject-1.15.12-3.el8.x86_64                   5/51
  インストール中    : xmlrpc-c-client-1.51.0-5.el8.x86_64                  6/51
  インストール中    : python3-audit-3.0-0.17.20191104git1c2f876.el8.x86    7/51
  インストール中    : libwayland-client-1.17.0-1.el8.x86_64                8/51
  インストール中    : desktop-file-utils-0.23-8.el8.x86_64                 9/51
  インストール中    : xdg-utils-1.1.2-5.el8.noarch                        10/51
  インストール中    : libwayland-cursor-1.17.0-1.el8.x86_64               11/51
  インストール中    : python3-setools-4.2.2-2.el8.x86_64                  12/51
  インストール中    : python3-libsemanage-2.9-2.el8.x86_64                13/51
  インストール中    : lz4-1.8.1.2-4.el8.x86_64                            14/51
  インストール中    : libreport-2.9.5-10.el8.x86_64                       15/51
  インストール中    : python3-libreport-2.9.5-10.el8.x86_64               16/51
  インストール中    : libmodman-2.0.1-17.el8.x86_64                       17/51
  scriptlet の実行中: libmodman-2.0.1-17.el8.x86_64                       17/51
  インストール中    : libproxy-0.4.15-5.2.el8.x86_64                      18/51
  scriptlet の実行中: libproxy-0.4.15-5.2.el8.x86_64                      18/51
  インストール中    : libreport-web-2.9.5-10.el8.x86_64                   19/51
  インストール中    : libreport-plugin-reportuploader-2.9.5-10.el8.x86_   20/51
  インストール中    : libgusb-0.3.0-1.el8.x86_64                          21/51
  インストール中    : colord-libs-1.4.2-1.el8.x86_64                      22/51
  インストール中    : json-glib-1.4.4-1.el8.x86_64                        23/51
  インストール中    : checkpolicy-2.9-1.el8.x86_64                        24/51
  インストール中    : python3-policycoreutils-2.9-9.el8.noarch            25/51
  インストール中    : policycoreutils-python-utils-2.9-9.el8.noarch       26/51
  インストール中    : xkeyboard-config-2.28-1.el8.noarch                  27/51
  インストール中    : libxkbcommon-0.9.1-1.el8.x86_64                     28/51
  インストール中    : python3-systemd-234-8.el8.x86_64                    29/51
  インストール中    : python3-pydbus-0.6.0-5.el8.noarch                   30/51
  インストール中    : python3-cairo-1.16.3-6.el8.x86_64                   31/51
  インストール中    : python3-gobject-3.28.3-1.el8.x86_64                 32/51
  インストール中    : setroubleshoot-plugins-3.3.11-2.el8.noarch          33/51
  scriptlet の実行中: setroubleshoot-server-3.3.22-2.el8.x86_64           34/51
  インストール中    : setroubleshoot-server-3.3.22-2.el8.x86_64           34/51
  scriptlet の実行中: setroubleshoot-server-3.3.22-2.el8.x86_64           34/51
  インストール中    : libwayland-egl-1.17.0-1.el8.x86_64                  35/51
  インストール中    : libnotify-0.7.7-5.el8.x86_64                        36/51
  scriptlet の実行中: libnotify-0.7.7-5.el8.x86_64                        36/51
  インストール中    : libepoxy-1.5.3-1.el8.x86_64                         37/51
  インストール中    : libXtst-1.2.3-7.el8.x86_64                          38/51
  インストール中    : at-spi2-core-2.28.0-1.el8.x86_64                    39/51
  scriptlet の実行中: at-spi2-core-2.28.0-1.el8.x86_64                    39/51
  インストール中    : at-spi2-atk-2.26.2-1.el8.x86_64                     40/51
  scriptlet の実行中: at-spi2-atk-2.26.2-1.el8.x86_64                     40/51
  インストール中    : dconf-0.28.0-3.el8.x86_64                           41/51
  インストール中    : adwaita-cursor-theme-3.28.0-2.el8.noarch            42/51
  インストール中    : adwaita-icon-theme-3.28.0-2.el8.noarch              43/51
  インストール中    : abattis-cantarell-fonts-0.0.25-4.el8.noarch         44/51
  インストール中    : gsettings-desktop-schemas-3.32.0-4.el8.x86_64       45/51
  インストール中    : glib-networking-2.56.1-1.1.el8.x86_64               46/51
  インストール中    : libsoup-2.62.3-1.el8.x86_64                         47/51
  インストール中    : rest-0.8.1-2.el8.x86_64                             48/51
  scriptlet の実行中: rest-0.8.1-2.el8.x86_64                             48/51
  インストール中    : gtk3-3.22.30-5.el8.x86_64                           49/51
  インストール中    : libreport-gtk-2.9.5-10.el8.x86_64                   50/51
  インストール中    : setroubleshoot-3.3.22-2.el8.x86_64                  51/51
  scriptlet の実行中: dconf-0.28.0-3.el8.x86_64                           51/51
  scriptlet の実行中: setroubleshoot-3.3.22-2.el8.x86_64                  51/51
  scriptlet の実行中: desktop-file-utils-0.23-8.el8.x86_64                51/51
  scriptlet の実行中: adwaita-icon-theme-3.28.0-2.el8.noarch              51/51
  検証              : abattis-cantarell-fonts-0.0.25-4.el8.noarch          1/51
  検証              : adwaita-cursor-theme-3.28.0-2.el8.noarch             2/51
  検証              : adwaita-icon-theme-3.28.0-2.el8.noarch               3/51
  検証              : at-spi2-atk-2.26.2-1.el8.x86_64                      4/51
  検証              : at-spi2-core-2.28.0-1.el8.x86_64                     5/51
  検証              : cairo-gobject-1.15.12-3.el8.x86_64                   6/51
  検証              : colord-libs-1.4.2-1.el8.x86_64                       7/51
  検証              : dconf-0.28.0-3.el8.x86_64                            8/51
  検証              : desktop-file-utils-0.23-8.el8.x86_64                 9/51
  検証              : gtk3-3.22.30-5.el8.x86_64                           10/51
  検証              : libXtst-1.2.3-7.el8.x86_64                          11/51
  検証              : libepoxy-1.5.3-1.el8.x86_64                         12/51
  検証              : libnotify-0.7.7-5.el8.x86_64                        13/51
  検証              : libreport-2.9.5-10.el8.x86_64                       14/51
  検証              : libreport-gtk-2.9.5-10.el8.x86_64                   15/51
  検証              : libreport-plugin-reportuploader-2.9.5-10.el8.x86_   16/51
  検証              : libreport-web-2.9.5-10.el8.x86_64                   17/51
  検証              : libtar-1.2.20-15.el8.x86_64                         18/51
  検証              : libwayland-client-1.17.0-1.el8.x86_64               19/51
  検証              : libwayland-cursor-1.17.0-1.el8.x86_64               20/51
  検証              : libwayland-egl-1.17.0-1.el8.x86_64                  21/51
  検証              : libxkbcommon-0.9.1-1.el8.x86_64                     22/51
  検証              : python3-cairo-1.16.3-6.el8.x86_64                   23/51
  検証              : python3-gobject-3.28.3-1.el8.x86_64                 24/51
  検証              : python3-libreport-2.9.5-10.el8.x86_64               25/51
  検証              : python3-pydbus-0.6.0-5.el8.noarch                   26/51
  検証              : python3-systemd-234-8.el8.x86_64                    27/51
  検証              : rest-0.8.1-2.el8.x86_64                             28/51
  検証              : satyr-0.26-2.el8.x86_64                             29/51
  検証              : setroubleshoot-3.3.22-2.el8.x86_64                  30/51
  検証              : setroubleshoot-plugins-3.3.11-2.el8.noarch          31/51
  検証              : setroubleshoot-server-3.3.22-2.el8.x86_64           32/51
  検証              : xdg-utils-1.1.2-5.el8.noarch                        33/51
  検証              : xkeyboard-config-2.28-1.el8.noarch                  34/51
  検証              : augeas-libs-1.12.0-5.el8.x86_64                     35/51
  検証              : checkpolicy-2.9-1.el8.x86_64                        36/51
  検証              : glib-networking-2.56.1-1.1.el8.x86_64               37/51
  検証              : gsettings-desktop-schemas-3.32.0-4.el8.x86_64       38/51
  検証              : json-glib-1.4.4-1.el8.x86_64                        39/51
  検証              : libgusb-0.3.0-1.el8.x86_64                          40/51
  検証              : libmodman-2.0.1-17.el8.x86_64                       41/51
  検証              : libproxy-0.4.15-5.2.el8.x86_64                      42/51
  検証              : libsoup-2.62.3-1.el8.x86_64                         43/51
  検証              : lz4-1.8.1.2-4.el8.x86_64                            44/51
  検証              : policycoreutils-python-utils-2.9-9.el8.noarch       45/51
  検証              : python3-audit-3.0-0.17.20191104git1c2f876.el8.x86   46/51
  検証              : python3-libsemanage-2.9-2.el8.x86_64                47/51
  検証              : python3-policycoreutils-2.9-9.el8.noarch            48/51
  検証              : python3-setools-4.2.2-2.el8.x86_64                  49/51
  検証              : xmlrpc-c-1.51.0-5.el8.x86_64                        50/51
  検証              : xmlrpc-c-client-1.51.0-5.el8.x86_64                 51/51

インストール済み:
  abattis-cantarell-fonts-0.0.25-4.el8.noarch
  adwaita-cursor-theme-3.28.0-2.el8.noarch
  adwaita-icon-theme-3.28.0-2.el8.noarch
  at-spi2-atk-2.26.2-1.el8.x86_64
  at-spi2-core-2.28.0-1.el8.x86_64
  augeas-libs-1.12.0-5.el8.x86_64
  cairo-gobject-1.15.12-3.el8.x86_64
  checkpolicy-2.9-1.el8.x86_64
  colord-libs-1.4.2-1.el8.x86_64
  dconf-0.28.0-3.el8.x86_64
  desktop-file-utils-0.23-8.el8.x86_64
  glib-networking-2.56.1-1.1.el8.x86_64
  gsettings-desktop-schemas-3.32.0-4.el8.x86_64
  gtk3-3.22.30-5.el8.x86_64
  json-glib-1.4.4-1.el8.x86_64
  libXtst-1.2.3-7.el8.x86_64
  libepoxy-1.5.3-1.el8.x86_64
  libgusb-0.3.0-1.el8.x86_64
  libmodman-2.0.1-17.el8.x86_64
  libnotify-0.7.7-5.el8.x86_64
  libproxy-0.4.15-5.2.el8.x86_64
  libreport-2.9.5-10.el8.x86_64
  libreport-gtk-2.9.5-10.el8.x86_64
  libreport-plugin-reportuploader-2.9.5-10.el8.x86_64
  libreport-web-2.9.5-10.el8.x86_64
  libsoup-2.62.3-1.el8.x86_64
  libtar-1.2.20-15.el8.x86_64
  libwayland-client-1.17.0-1.el8.x86_64
  libwayland-cursor-1.17.0-1.el8.x86_64
  libwayland-egl-1.17.0-1.el8.x86_64
  libxkbcommon-0.9.1-1.el8.x86_64
  lz4-1.8.1.2-4.el8.x86_64
  policycoreutils-python-utils-2.9-9.el8.noarch
  python3-audit-3.0-0.17.20191104git1c2f876.el8.x86_64
  python3-cairo-1.16.3-6.el8.x86_64
  python3-gobject-3.28.3-1.el8.x86_64
  python3-libreport-2.9.5-10.el8.x86_64
  python3-libsemanage-2.9-2.el8.x86_64
  python3-policycoreutils-2.9-9.el8.noarch
  python3-pydbus-0.6.0-5.el8.noarch
  python3-setools-4.2.2-2.el8.x86_64
  python3-systemd-234-8.el8.x86_64
  rest-0.8.1-2.el8.x86_64
  satyr-0.26-2.el8.x86_64
  setroubleshoot-3.3.22-2.el8.x86_64
  setroubleshoot-plugins-3.3.11-2.el8.noarch
  setroubleshoot-server-3.3.22-2.el8.x86_64
  xdg-utils-1.1.2-5.el8.noarch
  xkeyboard-config-2.28-1.el8.noarch
  xmlrpc-c-1.51.0-5.el8.x86_64
  xmlrpc-c-client-1.51.0-5.el8.x86_64

完了しました!



おや、/var/logを確認すると、messagesがありません。
これはおそらく、Minimalインストールのため、rsyslogがない予感。
インストールして、起動します。

[root@centos8test nginx]# ls /var/log/
anaconda/        dnf.log          lastlog          tuned/
audit/           dnf.rpm.log      nginx/           wtmp
btmp             firewalld        private/
dnf.librepo.log  hawkey.log       sssd/
[root@centos8test nginx]# yum install rsyslog
メタデータの期限切れの最終確認: 2:20:26 時間前の 2020年08月12日 17時55分55秒 に 実施しました。
依存関係が解決しました。
================================================================================
 パッケージ         Arch          バージョン             リポジトリー     サイズ
================================================================================
インストール中:
 rsyslog            x86_64        8.1911.0-3.el8         AppStream        730 k
依存関係のインストール中:
 libestr            x86_64        0.1.10-1.el8           AppStream         27 k
 libfastjson        x86_64        0.99.8-2.el8           AppStream         37 k
 logrotate          x86_64        3.14.0-3.el8           BaseOS            86 k

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

ダウンロードサイズの合計: 880 k
インストール済みのサイズ: 2.6 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/4): libestr-0.1.10-1.el8.x86_64.rpm          103 kB/s |  27 kB     00:00
(2/4): libfastjson-0.99.8-2.el8.x86_64.rpm       87 kB/s |  37 kB     00:00
(3/4): rsyslog-8.1911.0-3.el8.x86_64.rpm        1.2 MB/s | 730 kB     00:00
(4/4): logrotate-3.14.0-3.el8.x86_64.rpm        195 kB/s |  86 kB     00:00
--------------------------------------------------------------------------------
合計                                            443 kB/s | 880 kB     00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備              :                                                       1/1
  scriptlet の実行中: logrotate-3.14.0-3.el8.x86_64                         1/4
  インストール中    : logrotate-3.14.0-3.el8.x86_64                         1/4
  インストール中    : libfastjson-0.99.8-2.el8.x86_64                       2/4
  scriptlet の実行中: libfastjson-0.99.8-2.el8.x86_64                       2/4
  インストール中    : libestr-0.1.10-1.el8.x86_64                           3/4
  scriptlet の実行中: libestr-0.1.10-1.el8.x86_64                           3/4
  インストール中    : rsyslog-8.1911.0-3.el8.x86_64                         4/4
  scriptlet の実行中: rsyslog-8.1911.0-3.el8.x86_64                         4/4
  検証              : libestr-0.1.10-1.el8.x86_64                           1/4
  検証              : libfastjson-0.99.8-2.el8.x86_64                       2/4
  検証              : rsyslog-8.1911.0-3.el8.x86_64                         3/4
  検証              : logrotate-3.14.0-3.el8.x86_64                         4/4

インストール済み:
  libestr-0.1.10-1.el8.x86_64           libfastjson-0.99.8-2.el8.x86_64
  logrotate-3.14.0-3.el8.x86_64         rsyslog-8.1911.0-3.el8.x86_64

完了しました!
[root@centos8test nginx]# ls /var/log/
anaconda  dnf.librepo.log  firewalld   maillog   private  sssd
audit     dnf.log          hawkey.log  messages  secure   tuned
btmp      dnf.rpm.log      lastlog     nginx     spooler  wtmp
[root@centos8test nginx]# systemctl start rsyslog
[root@centos8test nginx]# systemctl status rsyslog
● rsyslog.service - System Logging Service
   Loaded: loaded (/usr/lib/systemd/system/rsyslog.service; enabled; vendor pre>
   Active: active (running) since Wed 2020-08-12 20:18:07 JST; 3s ago
     Docs: man:rsyslogd(8)
           https://www.rsyslog.com/doc/
 Main PID: 2852 (rsyslogd)
    Tasks: 3 (limit: 12184)
   Memory: 4.7M
   CGroup: /system.slice/rsyslog.service
           mq2852 /usr/sbin/rsyslogd -n

 8月 12 20:18:07 centos8test systemd[1]: Starting System Logging Service...
 8月 12 20:18:07 centos8test rsyslogd[2852]: [origin software="rsyslogd" swVers>
 8月 12 20:18:07 centos8test systemd[1]: Started System Logging Service.
 8月 12 20:18:07 centos8test rsyslogd[2852]: imjournal: No statefile exists, /v>
 8月 12 20:18:07 centos8test rsyslogd[2852]: imjournal: journal files changed, >



これでSELinuxのトラブルシュート準備はOK。
tail -fで出力されるログを確認しつつ、systemctl start nginxを実行します。

[root@centos8test nginx]# tail -f /var/log/messages
.
.
.
省略
.
.
.
Aug 12 20:18:49 centos8test systemd[1]: Starting nginx - high performance web server...
Aug 12 20:18:49 centos8test nginx[2862]: nginx: [emerg] bind() to 0.0.0.0:8000 failed (13: Permission denied)
Aug 12 20:18:49 centos8test systemd[1]: nginx.service: Control process exited, code=exited status=1
Aug 12 20:18:49 centos8test systemd[1]: nginx.service: Failed with result 'exit-code'.
Aug 12 20:18:49 centos8test systemd[1]: Failed to start nginx - high performance web server.
Aug 12 20:18:49 centos8test dbus-daemon[689]: [system] Activating service name='org.fedoraproject.Setroubleshootd' requested by ':1.52' (uid=0 pid=2035 comm="/usr/sbin/sedispatch " label="system_u:system_r:auditd_t:s0") (using servicehelper)
Aug 12 20:18:49 centos8test dbus-daemon[2865]: [system] Failed to reset fd limit before activating service: org.freedesktop.DBus.Error.AccessDenied: Failed to restore old fd limit: Operation not permitted
Aug 12 20:18:51 centos8test dbus-daemon[689]: [system] Successfully activated service 'org.fedoraproject.Setroubleshootd'
Aug 12 20:18:55 centos8test setroubleshoot[2865]: SELinux is preventing /usr/sbin/nginx from name_bind access on the tcp_socket port 8000. For complete SELinux messages run: sealert -l 9b349b35-efad-4afc-b848-fa6fe4fafdd1
Aug 12 20:18:55 centos8test platform-python[2865]: SELinux is preventing /usr/sbin/nginx from name_bind access on the tcp_socket port 8000.#012#012*****  Plugin catchall (100. confidence) suggests   **************************#012#012If you believe that nginx should be allowed name_bind access on the port 8000 tcp_socket by default.#012Then you should report this as a bug.#012You can generate a local policy module to allow this access.#012Do#012allow this access for now by executing:#012# ausearch -c 'nginx' --raw | audit2allow -M my-nginx#012# semodule -X 300 -i my-nginx.pp#012

「ealert -l 9b349b35-efad-4afc-b848-fa6fe4fafdd1」を実行して見ろとありますね。  また、その下の行を見ると、TCP8000番ポートの利用がnginxで許可されていないことも確認できますね。


なので、それを許可します。

[root@centos8test nginx]# sealert -l 9b349b35-efad-4afc-b848-fa6fe4fafdd1
SELinux により、/usr/sbin/nginx による name_bind アクセスが、tcp_socket port 8000 で拒否されました。

*****  プラグイン catchall (100. 信頼性) による示唆****************************************

nginx に、 port 8000 tcp_socket の name_bind アクセスがデフォルトで許可されるべ きと考える場合。
このようにします: バグとして報告してください。
ローカルのポリシーモジュールを生成すると、
 このアクセスを許可することができます。
そして、以下を実行します:
以下を実行して、このアクセスを許可します:
# ausearch -c 'nginx' --raw | audit2allow -M my-nginx       <---------これを実行しろといっています
# semodule -X 300 -i my-nginx.pp                                      <---------これを実行しろといっています


追加情報:
ソースコンテキスト                     system_u:system_r:httpd_t:s0
ターゲットコンテキスト                   system_u:object_r:soundd_port_t:s0
ターゲットオブジェクト                   port 8000 [ tcp_socket ]
ソース                           nginx
ソースパス                         /usr/sbin/nginx
ポート                           8000
ホスト                           centos8test
ソース RPM パッケージ                 nginx-1.19.2-1.el8.ngx.x86_64
ターゲット RPM パッケージ
ポリシー RPM                      selinux-policy-3.14.3-41.el8.noarch
Selinux 有効化                   True
ポリシータイプ                       targeted
強制モード                         Enforcing
ホスト名                          centos8test
プラットフォーム                      Linux centos8test 5.7.10 #2 SMP Thu Jul 23
                              23:00:48 JST 2020 x86_64 x86_64
通知カウント                        2
最初の画面                         2020-08-12 20:17:48 JST
最後の画面                         2020-08-12 20:18:49 JST
ローカル ID                       9b349b35-efad-4afc-b848-fa6fe4fafdd1

生の監査メッセージ
type=AVC msg=audit(1597231129.873:234): avc:  denied  { name_bind } for  pid=2862 comm="nginx" src=8000 scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:object_r:soundd_port_t:s0 tclass=tcp_socket permissive=0


type=SYSCALL msg=audit(1597231129.873:234): arch=x86_64 syscall=bind success=no exit=EACCES a0=8 a1=564e534d1140 a2=10 a3=7ffcb4e0e600 items=0 ppid=1 pid=2862 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm=nginx exe=/usr/sbin/nginx subj=system_u:system_r:httpd_t:s0 key=(null)

Hash: nginx,httpd_t,soundd_port_t,tcp_socket,name_bind



2つのコマンドを実行します。

[root@centos8test nginx]# ausearch -c 'nginx' --raw | audit2allow -M my-nginx
******************** 重要 ***********************
このポリシーパッケージを有効にするには、以下を実行して下さい:

semodule -i my-nginx.pp

[root@centos8test nginx]# semodule -X 300 -i my-nginx.pp



改めて、nginxの起動。
今度は出来ました!

[root@centos8test nginx]# systemctl start nginx
[root@centos8test nginx]# systemctl status nginx
● nginx.service - nginx - high performance web server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor pres>
   Active: active (running) since Wed 2020-08-12 20:27:00 JST; 9s ago
     Docs: http://nginx.org/en/docs/
  Process: 2891 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited>
 Main PID: 2892 (nginx)
    Tasks: 2 (limit: 12184)
   Memory: 2.2M
   CGroup: /system.slice/nginx.service
           tq2892 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
           mq2893 nginx: worker process

 8月 12 20:27:00 centos8test systemd[1]: Starting nginx - high performance web >
 8月 12 20:27:00 centos8test systemd[1]: nginx.service: Can't open PID file /va>
 8月 12 20:27:00 centos8test systemd[1]: Started nginx - high performance web s>
[root@centos8test nginx]#



仕上げは、ファイアウォール(firewalld)。
TCP8000番ポートを開放します。

[root@centos8test nginx]# firewall-cmd --list-all --zone=public --permanent
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
[root@centos8test nginx]# firewall-cmd --add-port=8000/tcp --zone=public --perma
nent
success
[root@centos8test nginx]# systemctel reload firewalld
[root@centos8test nginx]# firewall-cmd --list-all --zone=public --permanent
public
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: cockpit dhcpv6-client ssh
  ports: 8000/tcp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:



最後は、クライアントからアクセスしての確認です。
f:id:opensourcetech:20200812204356p:plain
curlコマンドでアクセスしても、OKですね。

[root@centos8test nginx]# curl http://192.168.1.211:8000
Hello world!



おわりに nginx + njsですが、結構簡単に実行することが出来ました。
なお、SELinuxとファイアウォール(firewalld)を無効化してトラブルシュートを簡素化したい場合、
setenforce 0(一時的なSELinuxのログのみモードへの変更)とsystemctl stop firewalld(firewalldの停止)で対応できます。

その他、以下の本家サイトに色々なサンプルがあるので役に立ちます。
https://nginx.org/en/docs/njs/examples.html
以上、nginx 1.19.2 + njs-0.4.3の環境構築 on CentOS8でした!!!!!!!

Opensourcetech by Takahiro Kujirai