Guide pratique : NGINX Unit et PHP ensemble

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.

Étiquettes: nginx nginx-unit PHP application-server CentOS

Publié le 11 juillet à 07h26