Using Elasticsearch Rest API from Kibana web Dev Console to test ingest-pipeline

When using Elasticsearch with a Kibana instance, the user can take advantage of the Kibana web interface to test or query data from the Elasticsearch indexes really easy and fast with the REST APIs. Developing, testing or experimenting is easy in the Kibana Dev tools Console, where indexes could be created, deleted, populated and many more without the need of anything except a modern browser. The Elasticsearch REST API is here – https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-create-index.html, which points always to the current (latest) version of the Elasticseach version and the versions may be changed, for example, here is the link for the 7.17 branch. Using the Dev Tools Console is simpler even than the curl from the command-line, because the user does not need to add additional (curl or not) arguments and parameters for authentication, headers, metadata for data typing and so on. Just type the API commands and add data if they need. In fact, in the Elasticsearch site most examples use the REST API, so it is just as easy as copy and past in the console text area.

SCREENSHOT 1) Log in the Kibana instance and then navigate to the Dev tools on the left menu and then choose Console.

main menu
Management Dev Tools Console

SCREENSHOT 2) The console shows the last state, which in this case is empty, because it is opened for the first time.

Write the REST API in the left and execute by click over the play button and expect the output in JSON format in the right.

main menu
Dev tools Console overview

Keep on reading!

Review of freshly installed Fedora 39 KDE Plasma Desktop part 2 – System Settings

This is the part 2 of the Fedora 39 KDE Plasma Desktop review – Review of freshly installed Fedora 39 KDE Plasma Desktop (KDE GUI)
In part 2 only the System Settings of KDE Plasma is presented – the central place to configure and tweak the KDE Plasma – the graphical desktop environment with customizable layouts and panels, virtual desktops and sophisticated widgets. Some of the settings require an administrative account and whenever it is necessary the Plasma platform shows an authentication dialog to escalate privileges.
It worth mentioning the KDE Platform versions in Fedora 39:

  • KDE Plasma version: 5.27.8, upgradable to 5.27.10
  • KDE Frameworks version: 5.110.0, upgradable to 5.113.0
  • QT version: 5.15.10, upgradable to 5.15.12

The System Settings reflects the above versions and the functionality they incorporate.
The main components are:

  • Appearance
  • Workspace
    • Workspace Behavior
    • Windows Management
    • Shortcuts
    • Startup and Shutdown
    • Search
  • Personalization
    • Notifications
    • Users
    • Reginal Settings
    • Accessibility
    • Applications
    • KDE Wallet
    • Online Accounts
    • User Feedback
  • Network
    • Connections
    • Settings
  • Hardware
    • Input Devices
    • Display and Monitor
    • Audio
    • Multimedia
    • Power Management
    • Bluetooth
    • Color Management
    • KDE Connect
    • Printers
    • Removable Storage
    • Thunderbolt
  • System Administration
    • About this System
    • Software Update

System Settings may also be started from the console with

myuser@mydesktop ~ $ systemsettings

Here are the System Setting screenshots:

SCREENSHOT 1) Click on System Settings to launch the “System Settings” program.

View and edit KDE and some Linux system settings.

main menu
Main Menu – Favorites

Keep on reading!

Review of freshly installed Fedora 39 KDE Plasma Desktop (KDE GUI)

After the tutorial on how to install Fedora 39 KDE Plasma Desktop this tutorial is mainly to see what to expect from a freshly installed Fedora 39 KDE Plasma Desktop – the look and feel of the new KDE GUI (version 5.27.4 of KDE Plasma). The Fedora 39 KDE Plasma Desktop is part of Fedora spins – https://spins.fedoraproject.org/kde/
Here the user can find how to Install Fedora 39 KDE Plasma Desktop (KDE GUI). Here it worth mentioning the included versions of KDE software for Fedora 39:

  • KDE Plasma version: 5.27.8, upgradable to 5.27.10
  • KDE Frameworks version: 5.110.0, upgradable to 5.113.0
  • QT version: 5.15.10, upgradable to 5.15.12

The idea of this article is just to see what to expect from Fedora 39 KDE Plasma – the look and feel of the GUI, the default installed programs and their look and how to do some basic steps with them, it is included also screenshots of the KDE settings program. Here you’ll find more than 250 screenshots and not so many texts we do not want to turn this review of many texts and version information and 3 meaningless screenshots, which you could not see anything for the user interface because these days it is the primary goal of a Desktop system. You can expect more of this kind of review in the future. The big missing is the Kate Advanced Text Editor, which is not installed by default in this release.
This article is the first part of reviewing the Fedora 39 KDE Plasma. The second article contains KDE System Settings screenshots and it is Review of freshly installed Fedora 39 KDE Plasma Desktop part 2 – System Settings.

Some of the interesting screenshots

  • Logging
  • KDE Plasma Overview with Panel Toolbox
  • Fedora KDE main menu
  • Plasma Widgets
  • Activities
  • Install/Update applications with Discover
  • review of multiple installed GUI applications and games.
  • Dolphin – the KDE File Manager
  • KWrite – Text Editor
  • Kontact – manage email, calendar, contacts and other personal data with one application. It includes KMail, KAddressBook, KOrganizer, Akregator, and more.
  • KDE Partition Manager – manage disks and partitions.
  • Konsole – KDE’s Terminal Emulator
  • System Monitor – monitor the system.
  • KFind – Find Files/Folders – advanced files and folder search.
  • KGpg – a simple interface for GnuPG. A powerful encryption utility.
  • Klipper – clipboard manager for the KDE interface.
  • And more!

Fedora 39 KDE Plasma screenshots

SCREENSHOT 1) Fedora (6.5.6-300.fc39.x86_64) 39 (KDE Plasma)

main menu
grub entry boot

Keep on reading!

Install Fedora 39 KDE Plasma Desktop (KDE GUI)

This article will show the simple steps of installing a modern Linux Distribution like Fedora 39 KDE Plasma with KDE for the user graphical interface. First, it is offered the basic steps for installing the Operating system and then there are some screenshots of the installed system and its look and feel of it. Here is another article available with more screenshots of the installed and working Fedora 39 KDE PlasmaReview of freshly installed Fedora 39 KDE Plasma Desktop (KDE GUI). If the user is interested in Gnome as a graphical interface there are two articles on how to install Fedora 39 Workstation Edition, which comes with GNOMEInstall Fedora Workstation 39 (Gnome GUI) and Review of freshly installed Fedora 39 Workstation (Gnome GUI).
This is the simplest setup. One hard disk device in the system is installed, which is detected as sda and the entire disk will be used for the installation of Fedora 39 KDE Plasma. All disk information in sda disk device will be permanently deleted by the installation wizard!

The Fedora 39 KDE Plasma Desktop comes with

  • Xorg X11 server – 1.20.14 and Xorg X11 server XWayland 23.2.2 is used by default
  • linux kernel – 6.5.6
  • KDE Plasma version: 5.27.8
  • KDE Frameworks version: 5.110.0
  • QT version: 5.15.10

For more packages and versions information the user may check out the Fedora 39 server articles – Software and technical details of Fedora Server 39 including cockpit screenshots.

We used the following ISO for the installation process:

https://fedora.ipacct.com/fedora/linux/releases/39/Spins/x86_64/iso/Fedora-KDE-Live-x86_64-39-1.5.iso

It is a LIVE image so you can try it before installing it. The easiest way is just to download the image and burn it to a DVD disk or to flush a USB drive with the ISO. Just use the Linux command dd and a USB flash drive. It’s worth mentioning the dd command will destroy all data on the USB drive and overwrite it with the Fedora KDE Live ISO, so be sure to use a UBS Flash, which data is not important or with no data on it. The dd command uses the ISO as input and the output is the USB drive in Linux device form as /dev/sd?. For the following dd command, the USB drive is /dev/sdd

dd if=/mnt/media/OS/Fedora/Fedora-KDE-Live-x86_64-39-1.5.iso of=/dev/sdd bs=8M status=progress oflag=direct
2399141888 bytes (2.4 GB, 2.2 GiB) copied, 24 s, 99.9 MB/s2481055744 bytes (2.5 GB, 2.3 GiB) copied, 24.8488 s, 99.8 MB/s

295+1 records in
295+1 records out
2481055744 bytes (2.5 GB, 2.3 GiB) copied, 24.8797 s, 99.7 MB/s

SCREENSHOT 1) Boot from the UEFI USB Drive Kingston device.

It is the same as the USB CD/DVD-ROM bootable removable drive. Choose the UEFI USB CD/DVD drive and boot the installation live drive.

main menu
UEFI BIOS DVD-ROM boot

Keep on reading!

Govee WiFi Thermometer Hygrometer H5179 cannot connect to the Wi-Fi

Govee WiFi Thermometer Hygrometer (model H5179) uses 3 AA batteries, which may last year or two depending on the period of pushing the data to the severs in the Internet (i.e. using the Wi-Fi module). The device may suddenly to begin losing Wi-Fi connection or even stop connecting to it, which is an indicator that the batteries should be replaced. Despite that the battery indicator in the app is full, the batteries probably supply low voltage to the electronics in the device that’s why the Wi-Fi begins not to work properly! The device may have kept normal Bluetooth operation for several month leaving the user wondering what is going on! In fact, problems with the Wi-Fi module is the first signal for a battery replacement.
There three screenshots of a device, which works perfectly fine without the Wi-Fi. It reports via Bluetooth the temperature and keeps track of it, but cannot connect to the Wi-Fi, despite it says the Wi-Fi settings are successfully saved.

SCREENSHOT 1) In the device settings the Wi-Fi is successfully set and the device immediately tries connecting.

main menu
settings Wi-Fi successfully set

Keep on reading!

Review of freshly installed Fedora 39 Workstation (Gnome GUI)

After Install Fedora Workstation 39 (Gnome GUI) – the look and feel of the GUI (Gnome – version 45.0).

  • Xorg X11 server – 1.20.14 and Xorg X11 server XWayland 23.2.2 is used by default
  • GNOME (the GUI) – 45.0
  • linux kernel – 6.5.6

The idea of this tutorial is just to see what to expect from Fedora 39 Workstation – the look and feel of the GUI, the default installed programs, and their look and how to do some basic steps with them. Here the reader finds more than 259 screenshots and not so much text the main idea is not to distract the user with much text and version information and 3 meaningless screenshots , which the reader cannot see anything for the user interface, but these days the user interface is the primary goal of a Desktop system. Only for comparison there are couple of old versions reviews, too – Review of freshly installed Fedora 38 Workstation (Gnome GUI), Review of freshly installed Fedora 37 Workstation (Gnome GUI), Review of freshly installed Fedora 36 Workstation (Gnome GUI) and more.
For more details about what software version could be installed check out the Software and technical details of Fedora Server 39 including cockpit screenshots. The same software could be installed in Fedora 39 Workstation to build a decent development desktop system.

For all installation and review articles, real workstations are used, not virtual environments!

SCREENSHOT 1) Fedora Linux (6.5.-300.fc39.x86_64) 39 (Workstation Edition)

main menu
grub 2.06 entry boot

Keep on reading!

Install Fedora Workstation 39 (Gnome GUI)

This article will show the simple steps of installing a modern Linux Distribution like Fedora 39 Workstation Edition with Gnome for the graphical user interface. First, it is offered the basic steps for installing the Operating system and then there are some screenshots of the installed system and its look and feel. Soon another article will show more screenshots of the installed and working Fedora 39 (Gnome and KDE plasma) – so the user may decide which of them to try first.
This is the most straightforward setup. One hard disk device in the system is installed, which is detected as sda and the entire disk will be used for the installation of Fedora Workstation 39. All disk information in sda disk device will be permanently deleted by the installation wizard!

The Fedora 39 Workstation comes with

  • Xorg X11 server – 1.20.14 and Xorg X11 server XWayland 23.2.2 is used by default
  • GNOME (the GUI) – 45.0
  • linux kernel – 6.5.6

Check out our review article about what GUI software is included in – Review of freshly installed Fedora 39 Workstation (Gnome GUI).

There are previous installations howto articles for the older Fedora 38Install Fedora Workstation 38 (Gnome GUI), Install Fedora Workstation 37 (Gnome GUI), Review of freshly installed Fedora 36 Workstation (Gnome GUI), Install Fedora Workstation 31 (Gnome GUI), Install Fedora Workstation 30 (Gnome GUI).

The following ISO is used for the installation process: https://download.fedoraproject.org/pub/fedora/linux/releases/39/Workstation/x86_64/iso/Fedora-Workstation-Live-x86_64-39-1.5.iso
It is a LIVE image so you can try it before installing. The easiest way is just to download the image and burn it to a DVD disk (or make a bootable USB flash drive) and then follow the installation below.
The simplest way to make a bootable USB drive is to just use the Linux command dd. First, download the ISO file above and then plug the USB drive into the computer and find out the device name, it should be something of /dev/sda or /dev/sdb or /dev/sdc (execute the dmesg command in the console and check the last lines for the USB drive detection and its device name like /dev/sd?). After knowing the USB device name issue the dd command to overwrite it with the ISO. Note, all data will be lost if you use the following command with the device name mentioned in the command line.

myuser@mydesktop ~ # dd if=/mnt/media/OS/Fedora/Fedora-Workstation-Live-x86_64-39-1.5.iso of=/dev/sdc bs=8M status=progress oflag=direct
2013265920 bytes (2.0 GB, 1.9 GiB) copied, 17 s, 118 MB/s2129752064 bytes (2.1 GB, 2.0 GiB) copied, 17.9778 s, 118 MB/s

253+1 records in
253+1 records out
2129752064 bytes (2.1 GB, 2.0 GiB) copied, 18.0187 s, 118 MB/s

The USB flash drive should have at least 4G space. Using dd command will overwrite the data on the USB drive without warning or confirmation!

The user can check what device name the just-plugged USB Drive has with dmesg console command:

myuser@mydesktop ~ # dmesg|tail -n 17
[90470.220142] usb 2-1: new high-speed USB device number 7 using xhci_hcd
[90470.361406] usb 2-1: New USB device found, idVendor=1f75, idProduct=0888, bcdDevice= 0.15
[90470.361411] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[90470.361413] usb 2-1: Product: IS888 USB3.0 to SATA bridge
[90470.361414] usb 2-1: Manufacturer: Innostor Technology
[90470.361415] usb 2-1: SerialNumber: 088810000000
[90470.364298] usb-storage 2-1:1.0: USB Mass Storage device detected
[90470.364427] scsi host5: usb-storage 2-1:1.0
[90471.387214] scsi 5:0:0:0: Direct-Access     KINGSTON  SNV425S2128GB        PQ: 0 ANSI: 0
[90471.387439] sd 5:0:0:0: Attached scsi generic sg2 type 0
[90471.387649] sd 5:0:0:0: [sdc] 250069680 512-byte logical blocks: (128 GB/119 GiB)
[90471.387970] sd 5:0:0:0: [sdc] Write Protect is off
[90471.387974] sd 5:0:0:0: [sdc] Mode Sense: 03 00 00 00
[90471.388288] sd 5:0:0:0: [sdc] No Caching mode page found
[90471.388290] sd 5:0:0:0: [sdc] Assuming drive cache: write through
[90471.395432]  sdc: sdc1 sdc2
[90471.395543] sd 5:0:0:0: [sdc] Attached SCSI disk

The just-plugged USB drive is attached to the system with the device name /dev/sdc.

SCREENSHOT 1) Boot from the UEFI USB device.

It is the same as the CD/DVD removable drive. Choose the UEFI USB drive to boot the live installation.

main menu
UEFI BIOS USB device boot

Keep on reading!

LXC with SELinux and NFS share result in kernel: SELinux: inode_doinit_use_xattr: getxattr returned 2 for dev=0:43 ino=

After staring a new LXC container, the syslog program (Syslog-ng) began to throw thousands of errors with this kind of message:

Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-6977140995289226736
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-6551465724643968476
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-5980833553552494142
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-8820947409424952637
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-8270463809263745561
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-7923279144252216900
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-6181977668994943343
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-7585065875445167421
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-7923279144252216900
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-5826517164673898101
Dec  1 10:50:36 srv kernel: SELinux: inode_doinit_use_xattr:  getxattr returned 2 for dev=0:43 ino=-7585065875445167421
Dec  1 11:01:01 h3 rsyslogd[1147]: imjournal: 3871493 messages lost due to rate-limiting (20000 allowed within 600 seconds)

These messages were logged in thousands. The same time, the NFS statistics showed a strange peak of using getattr. Something was calling getattr thousands times per second. Despite there were no SELinux blocks in audit.log as the dmesg suggested the SELinux might be blamed.
The LXC container is an application container, which has mound bind directory from the host server. The very same directory is an local NFS share (using NFS-Ganesha) of a GlusterFS volume and the PHP files are situated there.

main menu
kernel SELinux inode_doinit_use_xattr getxattr returned 2 nfsstat getattr graph

So the LXC container reads the PHP files from this NFS share. There were no issues to access the files and the application LXC worked just fine.
The problem disappeared when the NFS share was remounted with SELinux permissions using the context word:

node3:/VOL1 /mnt/nfs/VOL1 nfs defaults,hard,noexec,nosuid,_netdev,fsc,noatime,context="system_u:object_r:httpd_sys_rw_content_t:s0" 0 0

All the files are of SELinux label httpd_sys_rw_content_t and after restarting the LXC container there were no SELinux lines in the dmesg and the syslog logs. The administrator should configure the right SELinux permissions to the LXC bound directories. More on why SELinux sometimes does not report on blocks in the audit.log here – Selinux permission denied and no log in audit.log.

Degraded ext4 performance with millions files because of high system time in ext4_mb_good_group (100% kworker/u32+flush)

A strange behavior has been monitored in a storage server holding more than 20 millions of files, which is not a really big figure, because we have storage with more than 300 millions of files. The server has a RAID5 of 4 x 10T HGST Ultrastar He10 and storage partition formatted with ext4 filesystem with total of 27T size. Despite the inodes are only 7% and the free space is at 80%, the server began to experience high load averages with almost no IO utilization across the disks and the RAID device.
So the numbers are:

  • 20% free space.
  • 93% free inodes.
  • no IO disk utilization above 10-20% of any of the disks. In fact, the IO above 10% is very rear.
  • really high loads above the number of the server’s cores. The server has 8 virtual processors under Linux and the loads are constantly above 10-14.
  • no Disk Sleep blocked processes or Running to justify the high load.
  • the top command reports one or two kernel processes with 100% running – kworker/u32:1+flush-9:3 (so flushing the data takes so many time?)

If the problem were related to the disks or hardware, it would probably have been seen a high utilization across the disks, because the physical operations would need more time to execute. The high IO utilization across any disk, in deed, may result in a high system time (i.e. kernel time). Apparently, there is no high IO utilization across the disks and even no Disk Sleep blocked processes.
The FlameGraph tool may help to suggest the area where the problem related to.
First, install the git and perf tool (there are two interesting links about it with examples – link1 and link2):

dnf install -y perf git perl-open
git clone https://github.com/brendangregg/FlameGraph

Save a sample 60 second data with:

[root@srv ~]# perf record -F 99 -a -g -- sleep 60
[ perf record: Woken up 24 times to write data ]
[ perf record: Captured and wrote 7.132 MB perf.data (35687 samples) ]

And generate a SVG image of all the function, which are executed during this time frame of 60 seconds. It will give a good picture of what has been executed and how much time it took in the kernel and user space.

[root@srv ~]# cd FlameGraph
[root@srv FlameGraph]# ./stackcollapse-perf.pl ../out.perf > out.folded
[root@srv FlameGraph]# ./flamegraph.pl out.folded > kernel.svg

The SVG are shared bellow. It turned out most of the time during this sample period of 60 seconds, the Linux kernel was in ext4_mb_good_group, which is related to the EXT4 file system.
What fixed the problem (for now) – By removing files it was noticed the system time went down and the load went down, too. Then, after removing approximately a million files, the server performance returned to normal as the average other storage server (this one has unique hardware setup). So by removing files, i.e. INODES from the ext4 file system, the load average and the server ext4 performance were completely different from what it had been before.
The interesting part the inodes never went above 7% (around 24 million of 454 million available) and the free space never went down 20%, but when a good deal of files were removed, the bad ext4 performance disappeared. It still could be related to the physical disks or some strange ext4 bug, but this article is intended to report this behavior and to propose a some kind of a solution (even though a workaround).

SCREENSHOT 1) The kernel process running at 100% – kworker/u32:2-flush-9:3.

main menu
kernel process running at 100%

SCREENSHOT 2) Almost half of the time was spent at ext4 related calls.

main menu
ext4 and ext4_mb_good_group half of the time spent

Keep on reading!

nginx with SELinux and ngx_http_lua_module – PANIC: unprotected error in call to Lua API

main menu
runtime code generation failed restricted kernel

The CentOS 8 (CentOS Stream 9, too) might prevent to successfully execute a Lua code in NGINX web server with the modules like ngx_http_lua_module because of insufficient SELinux rules. By default, the web server is not allowed to execute programs that require memory addresses that are both executable and writable. Using Lua code may even crash with a core dump and restart of the NGIX worker process. The error logs contains information for the incident:

PANIC: unprotected error in call to Lua API (runtime code generation failed, restricted kernel?)

In fact, the error message hints what is going on – that the kernel prevents the execution of a code, which might be an addition limit enforced to this system.
Searching through the SELinux audit log shows the solution by enable the httpd_execmem SELinux boolean.

[root@srv ]# ausearch -c 'nginx' --raw | audit2allow


#============= httpd_t ==============

#!!!! This avc can be allowed using the boolean 'httpd_execmem'
allow httpd_t self:process execmem;

Apparently, the Lua code used needs a privileges to execute a code in the memory addresses (execmem). So when using the OpenResty ngx_http_lua_module, which is not distributed with the NGINX server, the server administrator should enable to true the SELinux boolean – httpd_execmem with:

setsebool -P httpd_execmem=1

The “-P” is going to make the value persistent over reboots.

Note, the official manual for the SELinux boolean. By enabling the httpd_execmem, several SELinux rules are applied, which may make the web server less secure, because the web server process is allowed to execute code in the memory.

– httpd_execmem

When enabled, this Boolean allows httpd to execute programs that require memory addresses that are both executable and writable. Enabling this Boolean is not recommended from a security standpoint as it reduces protection against buffer overflows, however certain modules and applications (such as Java and Mono applications) require this privilege.

The AVC (Access Vector Cache) message looks like:

type=AVC msg=audit(1699774004.724:59165857): avc:  denied  { execmem } for  pid=3872876 comm="nginx" scontext=system_u:system_r:httpd_t:s0 tcontext=system_u:system_r:httpd_t:s0 tclass=process permissive=0
type=SYSCALL msg=audit(1699774004.724:59165857): arch=c000003e syscall=10 success=no exit=-13 a0=7f399cd69000 a1=10000 a2=5 a3=38 items=0 ppid=884311 pid=3872876 auid=4294967295 uid=990 gid=987 euid=990 suid=990 fsuid=990 egid=987 sgid=987 fsgid=987 tty=(none) ses=4294967295 comm="nginx" exe="/usr/sbin/nginx" subj=system_u:system_r:httpd_t:s0 key=(null)ARCH=x86_64 SYSCALL=mprotect AUID="unset" UID="nginx" GID="nginx" EUID="nginx" SUID="nginx" FSUID="nginx" EGID="nginx" SGID="nginx" FSGID="nginx"
type=PROCTITLE msg=audit(1699774004.724:59165857): proctitle=6E67696E783A20776F726B65722070726F63657373

More on NGINXhttps://ahelpme.com/tag/nginx/ or SELinuxhttps://ahelpme.com/tag/selinux/.