This article interested me.
 – Sorry this is Japanese article.

PHP標準のアプリケーションサーバー「PHP-FPM」から「NGINX Unit」に乗り換えるだけで約8倍も応答速度が改善したというテスト結果
NGINX Unitはさまざまな言語で動作可能なオープンソースの動的アプリケーションサーバーです。PHPのアプリケーションを動作させる際にNGINX Unitを使うと、PHP-FPMを使う場合に比べて約8倍も応答速度が改善するというテスト結...
Currently my WordPress is on Raspberry Pi so I am curious performance.
I tried to setup WordPress by Nginx Unit.
TL;DR
This is directory/file structure.
$ tree
.
├── docker-compose.yml
├── myapp
│   └── config.json
└── wordpress
    └── Dockerfile
3 directories, 3 files
docker-compose.yml
version: '3.1'
services:
  wordpress:
   build:
    context: wordpress
   restart: always
   ports:
    - 8080:8080
   links:
    - db
   volumes:
    - ./myapp/config.json:/docker-entrypoint.d/config.json
    - wordpress_var_run:/var/run
  db:
   image: mariadb:latest
   restart: always
   ports:
    - 3306:3306
   environment:
    MYSQL_ROOT_PASSWORD: root
    MYSQL_USER: wordpress
    MYSQL_PASSWORD: wordpress
    MYSQL_DATABASE: wordpress
   volumes:
    - wordpress_var_run:/var/run
volumes:
  wordpress_var_run:
Dockerfile
FROM unit:php RUN mkdir /www/ && \ cd /www/ && \ curl -L https://ja.wordpress.org/latest-ja.tar.gz -o wordpress.tar.gz && \ tar zxvf wordpress.tar.gz && \ mv wordpress/* . && \ rm -f /www/wordpress.tar.gz && \ chown -R www-data:www-data /www/ && \ docker-php-ext-install mysqli && \ docker-php-ext-enable mysqli
config.json
 – You can configure applications/wordpress/processes based on your CPU cores.
{
	"listeners": {
		"*:8080": {
			"pass": "routes"
		}
	},
	"routes": [
		{
			"match": {
				"uri": [
					"*.php",
					"*.php/*",
					"/wp-admin/"
				]
			},
			"action": {
				"pass": "applications/wordpress/direct"
			}
		},
		{
			"action": {
				"share": "/www$uri",
				"fallback": {
					"pass": "applications/wordpress/index"
				}
			}
		}
	],
	"applications": {
		"wordpress": {
			"type": "php",
			"user": "www-data",
			"processes": 12,
			"targets": {
				"direct": {
					"root": "/www/"
				},
				"index": {
					"root": "/www/",
					"script": "index.php"
				}
			}
		}
	}
}
You can see initial setup page when you access http://localhost:8080.
$ sudo apt install -y docker docker-compose $ sudo docker-compose up -d

Reference
NGINX Unit: Unit in Docker
NGINX Unit: WordPress
Conclusion
How was it?
I would like to improve below points to be able to use for me!
- WAF(ModSecurity) activation
- Cache enabling
- Others

Comments