Ich habe eine Frage zur Verwendung eines Computers als Webserver. Warum kann ein bestimmter Computer ein Webserver sein? Welche Funktionen machen es zu einem Webserver? Gibt es einen Fall, in dem ein Computer nicht als Webserver fungieren kann?
Ich habe eine Frage zur Verwendung eines Computers als Webserver. Warum kann ein bestimmter Computer ein Webserver sein? Welche Funktionen machen es zu einem Webserver? Gibt es einen Fall, in dem ein Computer nicht als Webserver fungieren kann?
Antworten:
Nahezu jeder Computer kann als [Web] Server verwendet werden, vorausgesetzt, er kann eine Verbindung zu einem Netzwerk herstellen und Webserver-Software ausführen. Da ein Webserver recht einfach sein kann und es kostenlose und Open-Source-Webserver gibt, kann in der Praxis jedes Gerät als Webserver fungieren.
Das größere Problem ist die Netzwerkseite. Damit ein System als Server fungieren kann, müssen andere Computer darauf zugreifen können. Wenn es nur für die Verwendung in einem LAN vorgesehen ist, gibt es keine Bedenken. Wenn es jedoch aus dem weiteren Internet verwendet werden soll, müssen Daten an dieses weitergeleitet werden. Dies erfordert entweder eine statische IP-Adresse, die dem Server zugeordnet ist (oder einen über einen Router weitergeleiteten Port), oder einen externen Dienst, der einen Domänennamen / eine Unterdomäne einer sich ändernden dynamischen IP-Adresse zuordnen kann.
(FWIW, Sie können 10 US-Dollar-Computer kaufen, die als einfacher Webserver fungieren können.)
Obwohl jedes Gerät als Webserver fungieren kann, kann die Funktionalität von Websites sehr unterschiedlich sein, und ein billiges Gerät (oder eine langsame Verbindung) kann den Anforderungen möglicherweise nicht gerecht werden, je nachdem, um welche Website es sich handelt.
Ich stelle fest, dass alles oben über Webserver spricht - aber dasselbe kann für so ziemlich jeden Servertyp gesagt werden.
Es ist überhaupt nicht schwierig. Dies hängt lediglich von Ihrer Definition des "Webservers" ab.
Es ist durchaus möglich, einen "Webserver" auf Geräten auszuführen, die so einfach wie ein Mikrocontroller sind.
Überlegen wir uns, was der minimalistische Webserver tun müsste. Es müsste etwas Text ausgeben - nicht unbedingt sogar in HTML an einen Client. Es muss bekannt sein, dass es sich bei einer Anfrage um eine Anfrage handelt, und es muss angemessen geantwortet werden. Sie würden nicht einmal eine Netzwerkverbindung benötigen, wenn Ihr "Client" lokal wäre. Es wäre ein völlig sinnloser Webserver.
Dies wäre das Webserveräquivalent zu einem dieser Server .
Hinzufügen einer Netzwerkkonnektivität für einen Client (Ethernet ist nett, aber es gibt keinen technischen Grund, warum Sie keine Verbindung zu einem Webserver herstellen können, der über WLAN ausgeführt wird) und die Möglichkeit, eine Route von einem Client aus zu erstellen, sind besser.
A $ 5 ESP8266 - ein billiger, minimaler Mikrocontroller mit WLAN kann einen Großteil davon und möglicherweise sogar grundlegende dynamische Inhalte verarbeiten
Ich benutze so etwas für den schnellen Dateiaustausch mit Python. Es ist durchaus möglich, so etwas auf einem Mikrocontroller zu schreiben oder sogar auf einem Telefon auszuführen.
Statischer Inhalt ist langweilig. Fügen Sie dynamische Sprachen hinzu und Sie müssen anfangen, an schwerere Gewichtssysteme zu denken. Sachen, die Linux oder Windows laufen lassen, sind nett.
An dieser Stelle geht es um Consumer-Router, kleine Anwendungen, die Webseiten auf der Benutzeroberfläche verwenden, und all das.
Ein Webserver ist nicht einmal ein komplexes Problem und kann in fünf Zeilen Bash geschrieben und unter Linux ausgeführt werden. Nun zum Scheitern verurteilt ... Aber jedes System, das zum Scheitern verurteilt werden kann, kann einen Webserver ausführen.
Eine gute Webserver-Konfiguration, die eine bestimmte Last verarbeiten kann, ist etwas schwieriger.
Jeder Computer kann buchstäblich zu einem Webserver werden, wenn er über Folgendes verfügt:
Aber würde es ausreichen? Nun, das ist die schwierige Frage.
Damit ein Computer zu einem Webserver wird, der moderne Webseiten oder Web-Apps für eine ganze Community (z. B. Schule, Firma, Museum) bereitstellt:
Dies war jedoch nur ein Minimum für kleine Operationen. Wenn Ihr Betrieb größer wird (dh Sie erhalten einen höheren Datenverkehr und stellen komplexe Webanwendungen statt statischer Seiten bereit), steigen Ihre Anforderungen. Sie benötigen schließlich:
Um die Internetinfrastruktur für die gesamte Welt zu nutzen, benötigen Sie:
Ohne diese ist alles, was Sie haben, ein potenzieller Webserver.
Programmier- / Software-Perspektive:
Ein Programm, das Port 80 auf dem Netzwerkadapter abhören kann. Das läuft auf dem Betriebssystem, das Sie haben. Und kann die Anfragen nach HTTP-Definitionen verarbeiten.
Ein Programm, das jeden Port abhört, ist von jedem Computer im selben Netzwerk aus erreichbar. Im Idealfall handelt es sich um einen bekannten Standardport (80 und 8080 für HTML-Server; für benutzerdefinierte Anwendungen sollte der Wert über 1024 liegen). Es ist sogar üblich, die Entwicklung eines netzwerkfähigen Programms auf demselben Computer auszuführen, auf dem Sie die Entwicklung durchführen.
Wenn Sie ihn über localhost erreichen können, können Sie ihn von überall im selben Netzwerk erreichen, und von überall aus gibt es einen Pfad zu diesem Computer und seinem Netzwerkadapter.
Vorsichtsmaßnahme: Viele All-in-One-Entwicklungsumgebungen in Standardinstallationen beschränken den Zugriff auf Localhost. Sie möchten doch nicht, dass Ihre Admin-Tools über das Internet erreichbar sind.
Hardware:
Die Hardware beginnt irgendwo bei "dem 10 Jahre alten Computer, auf dem XP oder Linux ausgeführt wird" und endet irgendwo bei "128 Core, mit 2 TiB RAM und 256 TiB SSDs in einem RAID", wobei die DB auch auf einem anderen Server ausgeführt wird . Webanwendungen sind in der Regel angenehm parallelisierbar, sodass Sie sie mit Clustern dieser Server noch weiter aufrüsten können / müssen. Und Geocast. Und verteiltes Design. Und viele andere Sachen. Es kommt ganz darauf an, über welchen Umfang wir sprechen.
Der einfachste Webserver, den Sie wahrscheinlich treffen werden, ist übrigens der von Ihnen verwendete Router. Sie alle betreiben einen Webserver für Konfigurationszwecke, der unter Linux gehostet wird (das erledigt die gesamte DHCP- und NAT-Arbeit).
Vernetzung:
Einen Weg aus anderen Netzen zu haben - überall im Internet inklusive - jetzt , die eine ganz andere Geschichte und ein Teil noch härter als die Programmierung die Anwendung ist. Zwischen dem NAT Ihres Routers und dem NAT Ihres Netzbetreibers wurde dieses Zeug wirklich hart.
Wenn Sie einen Computer zur Hand haben (PC, Laptop, Smartphone, HimbeerPI ...), auf dem Python installiert ist, geben Sie einfach Folgendes ein:
$ python -m SimpleHTTPServer
Oder wenn Sie Node.js installiert haben:
$ npm install http-server -g
$ http-server
Herzlichen Glückwunsch, Sie haben einen Webserver!