Nagiosサーバーを使用してイメージを構築しています。ラズベリーパイの問題の1つは、ラズベリーパイのメモリが非常に小さいことです。そこで、標準の代わりにphp-apcに基づいた軽量のインターフェイスを使用します。
どの軽量Webサーバーを使用することをお勧めしますか?
PHPを実行してSSLを提供できる最小のWebサーバーを検討していました。Apache2またはNginxを考えていました。コンテンツは動的であるため、ApacheはNginxよりも優れていると思いますが。
Nagiosサーバーを使用してイメージを構築しています。ラズベリーパイの問題の1つは、ラズベリーパイのメモリが非常に小さいことです。そこで、標準の代わりにphp-apcに基づいた軽量のインターフェイスを使用します。
どの軽量Webサーバーを使用することをお勧めしますか?
PHPを実行してSSLを提供できる最小のWebサーバーを検討していました。Apache2またはNginxを考えていました。コンテンツは動的であるため、ApacheはNginxよりも優れていると思いますが。
回答:
ここでの本当の質問は、「Apacheが提供するすべての機能が必要ですか?」です。(あるいはもっと重要なのは、「あなたは、これらの機能のためのメモリを使用して喜んでいますか?」) -カスタム・コンパイルすることができ非常に削ぎ落としたのApache +のmod_perlのか、mod_phpをすることをあなたのNagiosのWebインターフェイス(またはユーバー-剥奪Apacheを実行しますperl CGIを実行するだけです)、しかし、Apacheはおそらく同じ仕事をするためにnginxよりも多くのメモリを必要とするミニマリストの形で-それは単に小さく構築されていません。
100%確実にベイクオフを行うこともできます(nginxとApacheの両方をコンパイルし、どちらがより少ないRAMを消費するかを確認します)が、「通常の」サーバーでの経験から、nginxがおそらく低メモリのより良い選択であることがわかります構成:Apacheの柔軟性の一部を放棄しますが、とにかくそれを必要としない場合(そしてほとんどのサイトは必要ありません)、違いに気付かないでしょう。
パフォーマンス(時間)に関しては、Webサーバーによって制限されるとは思わない-ページを配布するサーバーエンジンのパフォーマンスがおそらく非常に重要である十分なボリュームを実行している場合、すべての不自然なベンチマークは別としてRaspberry Piを焼くために(そして実際、何人の人があなたの監視データを一度に見ているのでしょうか?:-)。
システムをスペースまたは時間に対して最適化できるというのはほとんど公理ですが、両方を同時に使用することはできません。RaspberryPiスペースでは、おそらく制限制約になります。
powerful
(未定義の用語のため)。私は言ったflexible
(必要に応じてベアボーンコアサーバーをいくつ構成できるかを参照)。これは、どちらのサーバーにも悪い影響を与えるものではありません。どちらも優れたコードですが、設計目標は大きく異なります。Apacheは、すべての人にとってすべてのものになるように設計されています。家の中に荷物を詰め込めるトラックです。nginxは小さくて高速になるように設計されています-スポーツカーですが、妻、子供、義理の犬、家族の犬を連れて行くことはできません。
私はNginxをWebサーバーとして使って良い経験をしました。Pythonでの迅速なアプリケーション開発のために、ボトルやフラスコのような軽量のwsgiフレームワークとチームを組みます。
ただし、1秒間に10件以上のリクエストを処理することを期待しないでください:)
NginxはDebian / RaspbianとArchの両方のリポジトリにあるため、1つのコマンドでインストールできます。
sudo pacman -Sy nginx
sudo apt-get install nginx
Webのいたるところに設定の例がたくさんあり、詳細な説明はおそらくこの質問の範囲を超えています。Nginx Wikiには多くの例があり、メーリングリストは非常に役立ちます。
PHPについて述べたので、標準/etc/nginx/nginx.conf
ファイルにPHPの例が含まれていることを知りたいと思うでしょう。
優れた低リソースWebサーバーは、PHPとSSLの両方をサポートするlighttpdです。これは、PHPで作業していると思わラズベリーパイの上に、それは非常に可能ですSecureHTTPをサポートするためのconfigureのlighttpd。
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
たぶん、あなたは他の人々がローエンドボックスで使ったことを見てみることができます。
基本的に、lighttpd + php-fcgiです。Lighttpdは非常に軽量であり、php-fcgiはほんの少しのメモリを使用するように設定できます。私はそれを64MBのVPSボックスに設定しました(nagiosではなく、CMSのものです)。
また、使用するメモリをできるだけ少なくするためにMySQLを最適化する必要があるかどうかもわかりません。
それはあなたを助けるかもしれませんが、そうでないかもしれません。Raspiをまだ使用していません:)
MakoサーバーとBarracudaDriveは同じソースから派生し、これらの2つのサーバーは、Apacheが静的コンテンツを配信するよりも70%高速に(Luaスクリプト言語を使用して)動的に生成されたコンテンツを配信できます。ベンチマーク結果はこちら:http : //barracudadrive.com/blog/2013/03/Apache-Nginx-Lighttpd-Monkey-and-BarracudaDrive-Speed-Test
Makoサーバーは次の場所にあります:http : //makoserver.net/
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スタックを実行することは控えめに言っても苦痛ですが、トラフィック量が少ない場合は不可能ではありません。