J'ai une question sur l'utilisation d'un ordinateur en tant que serveur Web. Pourquoi un ordinateur donné peut-il être un serveur Web? Quelles fonctionnalités permettent de devenir un serveur Web? Existe-t-il des cas dans lesquels un ordinateur est incapable de jouer le rôle de serveur Web?
networking
webserver
Vincent Théonardo
la source
la source
Réponses:
À peu près n'importe quel ordinateur peut être utilisé comme serveur [Web], à condition qu'il puisse se connecter à un réseau et qu'il puisse exécuter un logiciel de serveur Web. Comme un serveur Web peut être assez simple et qu'il existe des serveurs Web gratuits et à code source ouvert, en pratique, tout périphérique peut agir en tant que serveur Web.
Le plus gros problème est le côté réseau. Pour qu'un système agisse en tant que serveur, d'autres machines doivent pouvoir y accéder. Si c'est juste pour une utilisation dans un réseau local, il n'y a pas de souci; Toutefois, si vous utilisez Internet plus large, les données doivent y être acheminées. Cela nécessite soit une adresse IP statique associée au serveur (ou un port transféré via un routeur), soit un service externe pouvant mapper un nom de domaine / sous-domaine sur une adresse IP dynamique en évolution.
(FWIW, vous pouvez acheter 10 $ d’ordinateurs pouvant servir de serveur Web de base.)
Bien entendu, bien que tout appareil puisse faire office de serveur Web, les fonctionnalités des sites Web peuvent varier énormément et un appareil peu coûteux (ou une connexion lente) peut ne pas être en mesure de répondre à la demande, en fonction du site Web concerné.
Je remarque que tout ce qui précède parle de serveurs Web - mais on peut en dire autant de tout type de serveur.
la source
Ce n'est pas délicat du tout. Cela dépend simplement de votre définition de "serveur Web".
Il est tout à fait possible d’exécuter un "serveur Web" sur des périphériques aussi simples qu’un microcontrôleur.
Voyons ce que le serveur Web minimal devrait faire. Il devrait générer du texte, même pas nécessairement en HTML, sur un client. Il aurait besoin de savoir qu'une demande est une demande et de répondre de manière appropriée. Vous n'auriez même pas besoin de connectivité réseau si votre "client" était local. Ce serait un serveur Web totalement inutile.
Ce serait l'équivalent serveur Web de l' un d'entre eux .
Ajout de la connectivité réseau pour un client (Ethernet, c’est bien, mais il n’ya aucune raison technique de ne pas pouvoir se connecter à un serveur Web fonctionnant en wifi) et il serait préférable de pouvoir acheminer à partir d’un client.
Un ESP8266 à 5 dollars US - un microcontrôleur minimal et économique avec wifi peut gérer une grande partie de ce contenu, voire même du contenu dynamique de base
J'utilise quelque chose comme ça pour le partage rapide de fichiers en utilisant Python. Il est toujours tout à fait possible d'écrire quelque chose comme ça sur un microcontrôleur ou même de l'exécuter sur un téléphone.
Le contenu statique est ennuyeux. Ajoutez des langages dynamiques et vous devrez penser à des systèmes plus lourds. Les choses qui fonctionnent sous Linux ou Windows sont bien.
À ce stade, vous parlez de routeurs grand public, de petites applications utilisant des pages Web sur l'interface utilisateur, etc.
Un serveur Web n'est même pas un problème complexe et peut être écrit en cinq lignes de bash et s'exécuter sous Linux. Maintenant, malheur ... Mais tout système capable d'exécuter malheur peut utiliser un serveur Web.
Une bonne configuration de serveur Web capable de gérer une charge donnée est un peu plus délicate.
la source
Le strict minimum
Littéralement, n'importe quel ordinateur peut devenir un serveur Web s'il présente les caractéristiques suivantes:
Mais cela suffirait-il? Maintenant, c'est la question délicate.
Servir un intranet
Pour qu'un ordinateur devienne un serveur Web servant des pages Web modernes ou des applications Web à une communauté entière (par exemple, une école, une entreprise, un musée):
Mais c'était juste un minimum pour les petites opérations. Lorsque vos opérations deviennent plus importantes (à savoir que le trafic est plus important et que vous utilisez des applications Web complexes au lieu de pages statiques), vos besoins augmentent. Vous aurez éventuellement besoin de:
Servir le monde extérieur
Pour exploiter l'infrastructure Internet au service du monde entier, vous aurez besoin de:
Sans cela, tout ce que vous avez est un serveur Web potentiel .
la source
Programmation / perspective logicielle:
Un programme capable d'écouter le port 80 sur la carte réseau. Cela fonctionne sur le système d'exploitation que vous avez. Et peut traiter les demandes en fonction des définitions HTTP.
Un programme qui écoute n'importe quel port est accessible à partir de tous les ordinateurs du même réseau. Idéalement, il devrait s'agir d'un port standard connu (80 et 8080 pour les serveurs HTML; choisissez au-delà de 1024 pour les applications personnalisées). Il est même pratique courante de développer un programme accessible en réseau sur le même ordinateur que celui sur lequel vous effectuez le développement.
Si vous pouvez l'atteindre via localhost, vous pouvez l'atteindre de n'importe où sur le même réseau et de n'importe où ailleurs, il y a un chemin d'accès à cette machine et à sa carte réseau.
Mise en garde: De nombreux environnements de développement tout-en-un dans les installations par défaut limitent l'accès à Localhost. Vous ne voulez pas que vos outils d'administration soient accessibles depuis Internet, après tout.
Matériel:
Le matériel commence quelque part sur "cet ordinateur de 10 ans qui exécute XP ou Linux" et se termine vers "128 cœurs, avec 2 To de mémoire vive et 256 To de SSD dans un raid", avec la base de données également exécutée sur un autre serveur. . Les applications Web ont tendance à être agréablement parallélisables, de sorte que vous pouvez / devez encore plus utiliser les clusters de ces serveurs. Et géocast. Et design distribué. Et beaucoup d'autres choses. Cela dépend entièrement de quelle échelle nous parlons.
Le serveur Web le plus simple que vous rencontrerez probablement est le routeur que vous utilisez, au fait. Ils exécutent tous un serveur Web à des fins de configuration, hébergé sur un serveur Linux (qui effectue tout le travail DHCP et NAT).
La mise en réseau:
Avoir un chemin d'autres réseaux - y compris partout sur Internet - maintenant que est une histoire totalement différente et une partie encore plus difficile que la programmation de l'application. Entre le NAT de votre routeur et un NAT de classe opérateur, ces choses sont devenues très difficiles.
la source
Si vous avez sous la main tout type d’ordinateur (PC, ordinateur portable, smartphone, raspberryPI ...) sur lequel Python est installé, tapez simplement:
Ou si vous avez installé Node.js:
Félicitation, vous avez un serveur web!
la source