コンピューターをWebサーバーとして使用することについて質問があります。特定のコンピューターをWebサーバーにできるのはなぜですか?Webサーバーにできる機能は何ですか?コンピューターがWebサーバーとして機能できない場合はありますか?
コンピューターをWebサーバーとして使用することについて質問があります。特定のコンピューターをWebサーバーにできるのはなぜですか?Webサーバーにできる機能は何ですか?コンピューターがWebサーバーとして機能できない場合はありますか?
回答:
ネットワークに接続でき、Webサーバーソフトウェアを実行できるのであれば、ほとんどすべてのコンピューターを[Web]サーバーとして使用できます。Webサーバーは非常にシンプルであり、無料のオープンソースWebサーバーがあるため、実際には、どのデバイスでもWebサーバーとして機能できます。
大きな問題は、ネットワーク側です。システムがサーバーとして機能するには、他のマシンがアクセスできる必要があります。LANで使用するだけであれば、心配はありません。ただし、より広いインターネットから使用する場合は、データをルーティングする必要があります。これには、サーバー(またはルーター経由で転送されるポート)に関連付けられた静的IPアドレス、またはドメイン名/サブドメインを動的IPアドレスにマッピングできる外部サービスが必要です。
(FWIW、基本的なWebサーバーとして機能できる10ドルのコンピューターを購入できます。)
もちろん、どのデバイスもWebサーバーとして機能できますが、Webサイトの機能は大きく異なる可能性があり、特定のWebサイトが何であるかによって、安価なデバイス(または低速接続)が要求に対応できない場合があります。
上記のすべてがWebサーバーについて述べていることに注意してください-しかし、ほとんどすべてのタイプのサーバーについて同じことが言えます。
それはまったくトリッキーではありません。「Webサーバー」の定義に依存するだけです。
マイクロコントローラと同じくらい簡単なデバイスで「ウェブサーバー」を実行することは完全に可能です。
最小限のWebサーバーで必要なことを考えてみましょう。HTMLでさえ、必ずしもクライアントにテキストを出力する必要はありません。要求が要求であることを知り、適切に応答する必要があります。「クライアント」がローカルであれば、ネットワーク接続さえ必要ありません。それは完全に無意味なWebサーバーです。
クライアントにネットワーク接続を追加します(イーサネットは便利ですが、wifiで実行されているWebサーバーに接続できない技術的な理由はありません)。クライアントからルーティングできる方が良いでしょう。
5ドルのESP8266 – Wi - Fiを備えた安価で最小限のマイクロコントローラーは、そのほとんどを処理でき、基本的な動的コンテンツも処理できます。
Pythonを使用してファイルをすばやく共有するには、そのようなものを使用します。このようなものをマイクロコントローラーで作成したり、電話で実行することも可能です。
静的コンテンツは退屈です。動的言語を追加すると、より重い重量システムについて考える必要があります。LinuxまたはWindowsを実行するものは素晴らしいです。
この時点で、消費者向けルーター、UIでWebページを使用する小さなアプリケーションなどを話しています。
Webサーバーは複雑な問題ではなく、5行のbashで記述してLinuxで実行できます。今、運命 ...しかし、運命を実行できるシステムは、Webサーバーを実行できます。
良い与えられた負荷を処理できるWebサーバのセットアップはややトリッキーです。
文字通り、次のものがあれば、どのコンピューターでもWebサーバーになります。
しかし、それで十分でしょうか?さて、それは難しい質問です。
コンピューターがコミュニティ全体(学校、会社、博物館など)に最新のWebページまたはWebアプリを提供するWebサーバーになるには:
しかし、これは小規模な運用では最低限のものでした。オペレーションが大きくなると(つまり、トラフィックが増え、静的なページではなく複雑なWebアプリを提供するようになると)、ニーズが大きくなります。最終的に必要なもの:
インターネットインフラストラクチャを活用して全世界にサービスを提供するには、次のものが必要です。
これらがなければ、あなたが持っているのは潜在的なウェブサーバーだけです。
プログラミング/ソフトウェアの観点:
ネットワークアダプターでポート80をリッスンできるプログラム。それはあなたが持っているOS上で動作します。また、HTTP定義に従って要求を処理できます。
任意のポートをリッスンするプログラムは、同じネットワーク内のすべてのコンピューターから到達可能です。理想的には、既知の標準ポートである必要があります(HTMLサーバーの場合は80および8080。カスタムアプリケーションの場合は1024以上を選択します)。開発を行っているのと同じコンピューターでネットワーク到達可能プログラムの開発を実行することも一般的です。
ローカルホスト経由でアクセスできる場合は、同じネットワーク内のどこからでもアクセスでき、他のどこからでもこのマシンとそのネットワークアダプタへのパスがあります。
警告:デフォルトのインストールでは、オールインワン開発環境の多くがLocalhostへのアクセスを制限しています。結局のところ、管理ツールにインターネットからアクセスできないようにする必要があります。
ハードウェア:
ハードウェアは「XPまたはLinuxを実行する10年前のコンピューター」から始まり、「128コア、RAIDに2 TiB RAMおよび256 TiBのSSDがある」どこかで終わり、DBも別のサーバーで実行されます。 。Webアプリケーションは快適に並列化できる傾向があるため、これらのサーバーのクラスターを使用して、Webアプリケーションをさらに向上させることができます。そしてジオキャスト。そして分散設計。そして、他の多くのもの。それは私たちが話している規模に完全に依存しています。
最も簡単なWebサーバーは、使用しているルーターです。それらはすべて、Linux上でホストされた構成目的でWebサーバーを実行します(つまり、DHCPおよびNATのすべての作業を実行しています)。
ネットワーキング:
インターネット上のどこを含む他のネットワークからのパスを持つことは、まったく異なる話であり、アプリケーションのプログラミングよりもさらに難しい部分です。ルーターのNATとキャリアグレードNATの間では、このようなことは本当に難しくなりました。