Nginx et notification par mail

Petit nouveau ! | 1 Messages

29 juin 2016, 15:23

Bonjour,
J'ai installé un reverse proxy Nginx sur une Debian pour pouvoir accéder à 2 webcam ip depuis Internet. j'ai donc configuré 2 virtualhosts.
Cela fonctionne et maintenant je voudrais pouvoir recevoir un mail à chaque connexion ou tentative de connexion.
Finalement ça semble plus complexe que prévu. Après plusieurs tentative, je cherche une information sur le principe. Ou peut-on intercaler un bout de code php (par exemple) chargé d'envoyer le mail.
Merci beaucoup pour l'info
Marcel,

ViPHP
ViPHP | 5879 Messages

29 juin 2016, 18:30

Bonjour,

Malheureusement à partir du moment où on utilise le module proxy, on ne peut pas combiner avec un autre module (perl, fastcgi, etc) pour servir la requête. On ne peut donc pas à ma connaissance exécuter un script en même temps que la redirection proxy.
Je vois plusieurs alternatives :
* Travailler sur les logs générés par les requêtes : Tu crées un programme (php, c, bash, perl ou autre) qui ouvre le log http, à chaque nouvelle ligne, tu envoies le mail.
* Placer une redirection 302 : Tu crées un script php qui va envoyer le mail, puis retourner une redirection 302 vers la vidéo. Dans le cas où tu ne veux pas que l'on puisse passer outre le script, tu places ce script derrière ton proxy. C'est à dire que tu fais un proxy_pass vers le script php qui envoie le mail, puis qui redirige vers la vidéo. Dans ce cas, à chaque requête, ton serveur nginx va appeler ton script, recevoir la redirection 302, puis aller chercher la vidéo.
* Utiliser le module auth_request : Ce module te permet de placer une authentification pour l'accès aux pages, en effectuant une subrequest. Tu peux placer ton script en argument de cette subrequest, auquel cas tu peux envoyer le mail puis retourner le statut HTTP 200 pour indiquer que la requête est autorisée. Suite à ça, le module proxy s'exécutera et ira chercher la vidéo demandée.

Cordialement
Dernière édition par Sékiltoyai le 29 juin 2016, 18:31, édité 1 fois.

Avatar de l’utilisateur
Administrateur PHPfrance
Administrateur PHPfrance | 7160 Messages

29 juin 2016, 18:30

Tu dois avoir un fichier de log qui enregistre toutes les connexions au nginx.
Tu dois pouvoir assez facilement sur ton serveur Debian mettre un cron tous les jours (ou toutes les minutes si tu veux du quasi temps réel) qui va appeler un script PHP qui va lire le fichier de log et t'envoyer les nouvelles demandes de connexions.

##edit : grillé par Sékiltoyai ^^
Quand tout le reste a échoué, lisez le mode d'emploi...