Comprenrde le flux entre NGINX, Unit et PHP
L'architecture fonctionne ainsi : NGINX reçoit les requêtes et les transmet au port 8300 où Unit écoute. Unit redirige ensuite ces requêtes vers le process PHP approprié.
Configuration pas à pas
Étape 1 : Installation
Sur CentOS 6, suivez la procédure officielle : http://unit.nginx.org/installation/#centos-packages
Étape 2 : Démarrage
Après installation via yum, lancez Unit avec :
/usr/sbin/unitd --control 127.0.0.1:8224
2018/12/26 14:26:11 [info] 13924#13924 unit started
Vérifiez les processus :
ps -ef | grep unit
root 13777 1 0 14:03 ? 00:00:00 unit: main v1.7 [/usr/sbin/unitd --control 127.0.0.1:8224]
nobody 13779 13777 0 14:03 ? 00:00:00 unit: controller
nobody 13896 13777 0 14:14 ? 00:00:00 unit: router
Étape 3 : Fichier de configuration
Créez /etc/unit/test.json avec :
{
"listeners": {
"*:8300": {
"application": "test"
}
},
"applications": {
"test": {
"type": "php",
"processes": 2,
"root": "/www/unit/test",
"index": "index.php"
}
}
}
Étape 4 : Envoi de la configuration
Utilisez curl pour transmettre le fichier à l'API de contrôle :
curl -X PUT -d @/etc/unit/test.json http://localhost:8224/config
Les deux processus d'application apparaissent :
ps -ef | grep unit
root 13925 1 0 14:26 ? 00:00:00 unit: main v1.7 [/usr/sbin/unitd]
nobody 13927 13925 0 14:26 ? 00:00:00 unit: controller
nobody 13928 13925 0 14:26 ? 00:00:00 unit: router
root 13929 13925 0 14:26 ? 00:00:00 unit: "test" application
root 13930 13925 0 14:26 ? 00:00:00 unit: "test" application
Étape 5 : Consultation de la configuration
curl http://127.0.0.1:8224
Étape 6 : Mise à jour dynamique
Modifiez le nombre de processsu dans le ficheir JSON (ex : 5), puis réenvoyez-le avec la même commande curl. Les processus s'ajustent automatiquement :
ps -ef | grep unit
root 13983 1 0 14:48 ? 00:00:00 unit: main v1.7 [/usr/sbin/unitd --control 127.0.0.1:8224]
nobody 13985 13983 0 14:48 ? 00:00:00 unit: controller
nobody 13986 13983 0 14:48 ? 00:00:00 unit: router
root 13993 13983 0 14:49 ? 00:00:00 unit: "test" application
root 13994 13983 0 14:49 ? 00:00:00 unit: "test" application
root 13995 13983 0 14:49 ? 00:00:00 unit: "test" application
root 13996 13983 0 14:49 ? 00:00:00 unit: "test" application
root 13997 13983 0 14:49 ? 00:00:00 unit: "test" application
NGINX se configure ensuite avec une directive proxy_pass vers 127.0.0.1:8300 pour rediriger le trafic vers Unit.