16 | | Le browser web (p.ex. firefox) sera sur votre PC local, il devra communiquer avec votre serveur HTTP sur votre PC du réseau enseignement. Nous allons devoir faire quelques manipulations pour rendre cela possible. En effet, nous avons deux obstacles. Le premier est que les machines du réseau enseignement ne sont pas directement accessibles, elles sont derrière une machine ''proxy'' (''durian''), le second est que le port d'écoute standard des serveurs web est 80 et que celui-ci est déjà utilisé par un serveur préinstallé (''apache''), nous devrons donc utiliser un autre port. Nous allons utiliser un tunnel ssh et de la redirection de port. |
| 16 | Le browser web (p.ex. firefox) sera sur votre PC local, il devra communiquer avec un serveur HTTP sur votre PC du réseau enseignement. Nous allons devoir faire quelques manipulations pour rendre cela possible. En effet, nous avons deux obstacles. Le premier est que les machines du réseau enseignement ne sont pas directement accessibles, elles sont derrière une machine ''proxy'' (''durian''), le second est que le port d'écoute standard des serveurs web est 80 et que celui-ci est déjà utilisé par un serveur préinstallé (''apache''), nous devrons donc utiliser un autre port. Nous allons utiliser un tunnel ssh et de la redirection de port. |
49 | | ssh -p 2280 localhost -L 8080:musicien:8000 |
50 | | }}} |
51 | | Vous faites un ssh sur `localhost` au port 8080 et grâce au premier tunnel, vos paquets vont être reçus par le serveur ssh de la machine `musicien` en passant à travers le proxy `durian`. Grâce à cette seconde commande, vous construisez un tunnel sur `musicien`, dont l'entrée est `localhost:8080` et la sortie est `musicien:8000`.[[BR]]. |
52 | | * On aurait pu choisir d'autres numéros de port à la place de 2222 et 8080. J'ai choisi des numéros en rapport avec les numéros standard. Pour le port 8000, vous aurez peut-être à changer ce numéro, si vous êtes deux sur la même machine du réseau enseignement. |
53 | | |
| 47 | ssh -p 2222 localhost -L 8080:musicien:8000 |
| 48 | }}} |
| 49 | Vous faites un ssh sur `localhost` au port 2222 et grâce au premier tunnel, vos paquets vont être reçus par le serveur ssh de la machine `musicien` en passant à travers le proxy `durian`. Grâce à cette seconde commande, vous construisez un tunnel sur `musicien`, dont l'entrée est `localhost:8080` et la sortie est `musicien:8000`. Nous allons, par la suite, brancher un serveur web sur le port 8000 et pour lui envoyer vos requêtes vous aurez à mettre dans la case de l'URL `localhost:8080`, les requêtes arriveront sur le serveur en ayant transervées 2 tunnels.[[BR]]. |
| 50 | * On aurait pu choisir d'autres numéros de port à la place de 2222 et 8080. J'ai choisi des numéros en rapport avec les numéros standard (22 pour ssh et 80 pour le serveur HTTP). Pour le port 8000, vous aurez peut-être à changer ce numéro, si vous êtes plusieurs sur la même machine du réseau enseignement. |
57 | | Ce serveur web est écrit en Python, à la réception des requêtes du client, il exécute des scripts CGI (Common Gateway Interface) écrit également en Python pour produire des pages HTML dynamiques. Les scripts CGI devront communiquer avec le programme écrit en C contrôlant les LEDs. La communication entre les scripts et l'application se fera par fifo UNIX. Le programme en C sera : soit la version permettant le contrôle depuis une application utilisateur (avec les droits de **root**), soit par une application utilisateur qui communique avec un driver. Je ne demande pas cette seconde possibilité parce que vous allez devoir insérer un module dans le noyau et c'est une difficulté supplémentaire qui n'apporte rien vis-à-vis de ce que vous allez voir aujourd'hui, mais je ne vous interdis pas de le faire. |
58 | | |
59 | | Pour ce faire, nous allons procéder en deux temps. |
| 54 | Ce serveur web est écrit en Python, à la réception des requêtes du client, il exécute des scripts CGI (Common Gateway Interface) écrit également en Python pour produire des pages HTML dynamiques. Les scripts CGI devront communiquer avec le programme écrit en C. La communication entre les scripts et l'application se fera par fifo UNIX. |
| 55 | |
| 56 | Nous allons procéder en deux temps. |