25

非常に単純なPOST/GETリクエストをJSONとして提供するWebサーバーが必要です。MVC、Rails、Djangoは必要ありません。メモリをほとんど消費しないものが必要です。できれば、要求ごとに約5Kを使用します。Webサーバーは、FacebookThriftを使用してScribeなどのバックエンドサービスと通信します。各httpリクエストはSQLLiteデータベースにもアクセスします。ユーザーごとに1つであり、ユーザーのデータは重複しません。静的なhtmlファイルとjsonWebサービスを提供します。

私は次のことを考えています:

  • PHPを使用したNjinx、
  • LuaのKepler、
  • libeventまたはlibevを使って自分自身をローリングし、おそらくLuaに呼びかけます。
  • MochiWeb。

これらのオプションのどれが最適で、他にどのようなオプションがありますか?私は基本的なスクリプトにPHP、python、またはLuaを使用でき、基本的なCも実行できます。私はある種のErlangソリューションに傾倒しています。

4

16 に答える 16

41

私は nginx ( https://nginx.org/ ) で良い経験をしましたが、ウェブサーバーを選択するときは、要件をよく見て、十分な情報に基づいた決定を下す必要があります。

この質問では、多くの人が g-wan や Webmachine などを推奨していることに気付くでしょう...これらはすべて、ユースケースで高速かどうかを確認するために確認し、ベンチマークする必要があるものです。

これはチアリーディングを奨励するような質問であり、「正解」はありません。

于 2008-10-30T04:00:40.010 に答える
11

Webmachineの作成者の一人として、喜んでお手伝いさせていただきます。私がフォローアップしている理由の1つは、WebmachineにJSON関連のコードがない場合でも、さまざまなJSON要求と応答を処理するために日常的に使用していることを知っておくと役立つ場合があるためです。それはシンプルで、きれいに拡張可能で、適度にうまく機能します。

静的配信が必要な場合は、nginxやlighttpdのようなものが適切な方法です。静的リクエストと動的リクエストが混在し、組み込みの優れたWeb動作が得られる場合は、Webmachineが適している場合があります。

詳細については、http://code.google.com/p/webmachine/wiki/ExampleResourcesの簡単なサンプルコードと、 http ://blog.therestfulway.com/のブログの最近の投稿を確認して ください。

それは私たちにとってうまくいきました。ご不明な点がございましたら、お気軽にお問い合わせください。

于 2008-11-13T02:00:37.667 に答える
9

www.cherokee-project.comのCherokeeWebサーバー

于 2009-05-25T18:19:13.207 に答える
9

フットプリントを測定するには、実行可能ファイルのサイズを調べます (共有ライブラリを忘れないでください)。

TrustLeap G-WAN (150 KB、依存関係なし) は、Java、C/C++、Objective-C、および D スクリプトを提供します。

これらのベンチマークによると、Nginx や Lighttpd よりも高速に実行しながら、使用するメモリと CPU リソースも少なくなります。

http://www.gwan.ch/benchmark

于 2010-01-19T17:35:12.560 に答える
8

Lighttpdは優れたフットプリントを備えており、メモリの大部分は、使用する言語を選択した場合に使用される可能性があります(Cルートを使用する場合を除きます。これは、実際には推奨されません)。

于 2008-10-30T03:40:06.743 に答える
7

「軽量」Webサーバーのかなり広範なリストを含むIBMdeveloperWorksに関する記事があります。
軽量Webサーバー:http://www.ibm.com/developerworks/web/library/wa-ltwebserv/

于 2008-10-30T03:50:13.383 に答える
7

Mochiweb は超軽量で、非常に高い負荷を処理します。

于 2008-10-30T05:07:15.507 に答える
4

G-WAN (ANSI C スクリプトを含む 150 KB) にはネイティブ JSON パーサーがあり、機能を考えるとおそらく最速です (テキストからのインポート/エクスポートに加えて、名前または値でエントリを検索できます)。

150 KB のフットプリント (サーバー + スクリプト エンジンを含む) を超えるのは難しいでしょう。

于 2011-01-01T18:26:56.040 に答える
4

最速の組み込み Web サーバーは Snorkel です。そこの Web サイトをチェックしてください。ab を使用した私のテストでは、nginx が破壊されました。 http://sites.google.com/site/snorkelembedded

于 2010-07-21T11:47:30.383 に答える
3

C または Lua の場合、Mongoose はオプションです ( https://github.com/valenok/mongoose )。リクエストごとに 5k 以上を使用します。これは主に、接続ごとのデータにリクエスト + ヘッダーの事前割り当て用のバッファーがあり、最大リクエスト サイズがデフォルトで 16k に設定されているためです。これは調整可能ですが、5k 未満にしても問題ありません。Mongoose#define MAX_REQUEST_SIZE 16384を埋め込むときに mongoose.c を変更するだけです。フットプリントに関しては、Lua (必要な場合) と SSL (必要な場合) を除いて、ディスク上でコンパイルされた約 50k です。実行時のフットプリントは OS によって異なります。

于 2012-10-03T04:38:09.767 に答える
3

これを見てください。まさにあなたが求めている情報だと思います。フル機能の Web サーバーは必要ないので、Erlang+libevent/libev を使用するとよいでしょう。

于 2011-03-02T05:23:47.263 に答える
2

Python について言及したので、ポート 80 でリッスンし、URL をアクションにマップする非常に簡単な方法については、web.pyを参照してください。

また、標準の Web サーバー (つまり、Nginx/FastCGI の背後) とペアリングする場合は、お気に入りの CGI を介して実行されます。また、静的ファイルでの大規模な同時実行のために Nginx の recs を使用します。(彼らは Reddit で Lighttpd と一緒に使用しました。)

thttpdは、特に組み込みシステムのようにメモリが非常に不足している場合に検討するもう 1 つの Web サーバーです。

于 2008-10-30T04:27:10.127 に答える
1

CまたはC++でコーディングできれば、lighttzが最速で、使用するメモリが最も少ないと思います。ただし、そうなる理由は、libevを使用していて、phpサポートも、htmlサポートもまったくないためです。それが提供するのは、uが各httpリクエストを処理するコールバック関数だけです。http GET / POSTリクエストを解析し、htmlを文字列として返す必要があります。nginx、lighttpd、apacheなどに対してベンチマークされていることがわかり、一番上に表示されます(リンク)。

于 2010-02-05T16:34:42.880 に答える
1

Nginx は、Varnish (Facebook が使用するキャッシュ) および Apache Traffic Server (Yahoo! が使用するキャッシュ) と比較されます。

そして、Nginx の背後にいる人物である Igor Sysoev は、彼のブログへのコメントに事欠きません。

于 2011-04-01T17:10:52.927 に答える
1

FAPWS (Fast Asynchronous Python WSGI server) を見ることができます。プロジェクトの哲学は、あなたのニーズに完全に一致します。 http://www.fapws.org

于 2010-06-21T10:52:33.130 に答える
1

koanlogic.com サイトの klone を見てください... 組み込みシステムをターゲットにしているため、非常に小さく、偶然にも非常に高速です: http://john.freml.in/teepeedee2-vs-klone . スキル/好みに応じて、C/C++ (超高パフォーマンス) または通常の PHP/CGI (非常に低パフォーマンス) でスクリプト化できます。

于 2009-11-27T17:33:12.743 に答える