動的コンテンツを提供する軽量のWebサーバーはありますか?


21

Nagiosサーバーを使用してイメージを構築しています。ラズベリーパイの問題の1つは、ラズベリーパイのメモリが非常に小さいことです。そこで、標準の代わりにphp-apcに基づいた軽量のインターフェイスを使用します。

どの軽量Webサーバーを使用することをお勧めしますか?

PHPを実行してSSLを提供できる最小のWebサーバーを検討していました。Apache2またはNginxを考えていました。コンテンツは動的であるため、ApacheはNginxよりも優れていると思いますが。


1
Nginxは、Apacheよりも簡単に優れています。
アレックスチェンバレン

@AlexChamberlainは、静的コンテンツでは実行しますが、動的コンテンツでは実行しません。
ルーカスカウフマン

5
請求。パフォーマンスの意味に依存します。Nginxはより少ないメモリを使用し、リークを減らし、(静的)ファイルをより速く提供します。私の(限られているが技術的な)経験では、動的コンテンツはApacheよりも高速または高速で提供されます。Nginxのメモリプロファイルを考慮すると、Raspberry Piでのパフォーマンスが大幅に向上します。Apacheの利点は、ここではありませんが、より安定しており、経験豊富な技術者がいることです。
アレックスチェンバレン

あなたはnginxのかlighttpdのが管理できないことを非常に複雑な設定を持っていない限り、私も256メガバイトではApacheを考えていない
ジョン・ラRooy

回答:


17

ここでの本当の質問は、「Apacheが提供するすべての機能が必要ですか?」です。(あるいはもっと重要なのは、「あなたは、これらの機能のためのメモリを使用して喜んでいますか?」) -カスタム・コンパイルすることができ非常に削ぎ落としたのApache +のmod_perlのか、mod_phpをすることをあなたのNagiosのWebインターフェイス(またはユーバー-剥奪Apacheを実行しますperl CGIを実行するだけです)、しかし、Apacheはおそらく同じ仕事をするためにnginxよりも多くのメモリを必要とするミニマリストの形で-それは単に小さく構築されていません。

100%確実にベイクオフを行うこともできます(nginxとApacheの両方をコンパイルし、どちらがより少ないRAMを消費するかを確認します)が、「通常の」サーバーでの経験から、nginxがおそらく低メモリのより良い選択であることがわかります構成:Apacheの柔軟性の一部を放棄しますが、とにかくそれを必要としない場合(そしてほとんどのサイト必要ありません)、違いに気付かないでしょう。


パフォーマンス(時間)に関しては、Webサーバーによって制限されるとは思わない-ページを配布するサーバーエンジンのパフォーマンスがおそらく非常に重要である十分なボリュームを実行している場合、すべての不自然なベンチマークは別としてRaspberry Piを焼くために(そして実際、何人の人があなたの監視データを一度に見ているのでしょうか?:-)。
システムをスペースまたは時間に対して最適化できるというのはほとんど公理ですが、両方を同時に使用することはできません。RaspberryPiスペースでは、おそらく制限制約になります。


最近、ApacheがNginxよりもはるかに強力であることに懐疑的です。
アレックスチェンバレン

@AlexChamberlain私の投稿を注意深く読んでいただければ、私はその言葉を使ったことがないことに気付くでしょうpowerful(未定義の用語のため)。私は言ったflexible(必要に応じてベアボーンコアサーバーをいくつ構成できるかを参照)。これは、どちらのサーバーにも悪い影響を与えるものではありません。どちらも優れたコードですが、設計目標は大きく異なります。Apacheは、すべての人にとってすべてのものになるように設計されています。家の中に荷物を詰め込めるトラックです。nginxは小さくて高速になるように設計されています-スポーツカーですが、妻、子供、義理の犬、家族の犬を連れて行くことはできません。
voretaq7

Nginxは成長していると思います...今では少なくともハッチバックであり、常に成長しています。それは何らかの形ですべての主要な動的言語をサポートでき、SSLをサポートし、SPDYは現在ベータ版です。
アレックスチェンバレン

15

Nginx

私はNginxをWebサーバーとして使って良い経験をしました。Pythonでの迅速なアプリケーション開発のために、ボトルフラスコのような軽量のwsgiフレームワークとチームを組みます。

ただし、1秒間に10件以上のリクエストを処理することを期待しないでください:)

設置

NginxはDebian / RaspbianとArchの両方のリポジトリにあるため、1つのコマンドでインストールできます。

アーチ

sudo pacman -Sy nginx

Debian / Raspbian

sudo apt-get install nginx

構成

Webのいたるところに設定の例がたくさんあり、詳細な説明はおそらくこの質問の範囲を超えています。Nginx Wikiには多くの例があり、メーリングリストは非常に役立ちます。

PHPについて述べたので、標準/etc/nginx/nginx.confファイルにPHPの例が含まれていることを知りたいと思うでしょう。


Nginxが大好きです。モジュラーシステムを使用して非常に簡単に拡張できます。
アレックスチェンバレン

1
私はあなたの答えを少し広げたかもしれません、あなたが気にしないことを願っていますか?
アレックスチェンバレン

13

lighttpd

優れた低リソースWebサーバーは、PHPとSSLの両方をサポートするlighttpdです。これは、PHPで作業していると思わラズベリーパイの上に、それは非常に可能ですSecureHTTPをサポートするためのconfigureのlighttpd


lighttpdも別の良い選択です。nginxのの人気は多くの場所でそれを凌駕しているが、それは間違いなく立派な(と小)サーバーです
voretaq7

lighttpd + php-fcgiは素晴らしいことができます。
ズラトコ

1

node.js

node.jsを使用して、ライトウェイトWebサーバーを作成できます。node.jsチュートリアルサイトの次の例を参照してください。

var http = require('http');
  http.createServer(function (req, res) {
      res.writeHead(200, {'Content-Type': 'text/plain'});
      res.write("Dynamic contents...");
      res.end('Hello World\n');
  }).listen(1337, "127.0.0.1");

console.log('Server running at http://127.0.0.1:1337/');

上記のコードはJavaスクリプトなので、動的なコード生成ロジックをJavaスクリプトで記述し、すぐに使用を開始できます。

link.http://nodejs.org/からnode.jsをダウンロードしてセットアップする必要があります(Windowsまたは任意のプラットフォームを使用する場合)。

次のコマンドを使用してWebサーバーを起動します。

node hello.js

しかし、Node.jsはphpを話しますか?
ルーカスカウフマン

Node.JSは他のコンテキストで使用されます。すべてのコードがC ++であるため、スタンドアロンサーバーとしてはうまく機能しません。しかし!node.js '+1を使用してノードを使用してGPIOおよびその他の低レベルハードウェアに直接アクセスできるため、これは素晴らしいことです。しかし、コンテンツを提供するにはapache / lighttpd / iisのようなフロントエンドが必要です
Piotrクラ

@LucasKauffmanいいえ-実際にはWebサーバーではなく、Webアプリケーションです。
アレックスチェンバレン

1
Stack Exchangeへようこそ。いい答えですが、私はそれが問題を解決するとは思わないので、私はダウン投票したのではないかと心配しています。OPはPHPを望んでおり、将来の読者はおそらくもう少し高性能なサーバーを望んでいるでしょう。
アレックスチェンバレン

1
Nagiosを実行していますが、独自のアプリケーションを開発していません:p
ルーカスカウフマン

0

たぶん、あなたは他の人々がローエンドボックスで使ったことを見てみることができます。

基本的に、lighttpd + php-fcgiです。Lighttpdは非常に軽量であり、php-fcgiはほんの少しのメモリを使用するように設定できます。私はそれを64MBのVPSボックスに設定しました(nagiosではなく、CMSのものです)。

また、使用するメモリをできるだけ少なくするためにMySQLを最適化する必要があるかどうかもわかりません。

それはあなたを助けるかもしれませんが、そうでないかもしれません。Raspiをまだ使用していません:)


0

MakoサーバーとBarracudaDriveは同じソースから派生し、これらの2つのサーバーは、Apacheが静的コンテンツを配信するよりも70%高速に(Luaスクリプト言語を使用して)動的に生成されたコンテンツを配信できます。ベンチマーク結果はこちら:http : //barracudadrive.com/blog/2013/03/Apache-Nginx-Lighttpd-Monkey-and-BarracudaDrive-Speed-Test

Makoサーバーは次の場所にあります:http : //makoserver.net/


0

Nginx / Passengerの組み合わせを使用して、Rubyベースのpi.gadgetoid.comを512Mb Raspberry Piで年中無休で実行しています。これは、以前使用していたThin / Apacheセットアップよりも大幅に優れています。これはかなりトラフィックの多い公開ウェブサイトですが、Cloudflare(基本的にキャッシングプロキシ)を使用してそのボリュームの大部分を処理することで多くの不正行為をしました。

この構成は256MBのPiでも快適に動作するはずですが、PassengerモジュールとNginxのコンパイルに問題がありました。メモリの制限に直面しています。

私はそれがPHPソリューションではないことを知っています、そして、私はそのような接線的な答えを提案することでおそらくbe辱されるでしょう。しかし、あなたの知識の限界を押し広げるためにPiを探していて、これをちょっとしたいじくり回しのためにやっているなら、RubyとSinatraを調べることを強くお勧めします。数週間以内にPHPに対する憎しみを感じるでしょう。

概して、256MBサーバーでPHP / Apache Webスタックを実行するのに大きな問題はありません。私はクラウドベースのホスティングの専門的な能力で、はるかに大きなサイトに対してこれを行いました。物事がくなるのは、MySQLが関与するときです。256MBでフルLAMPスタックを実行することは控えめに言っても苦痛ですが、トラフィック量が少ない場合は不可能ではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.