Apacheの代替


15

現在のスタックはApache + Tomcat + MySQLで、ProxyPassAJPを使用してApacheからTomcatにリクエストを送信します。また、同じサイトでWordpress用のPHPを実行しているため、作業.htaccessファイルが必要です。迷惑な問題(このStack Overflowページを参照)に対応して代替スタックを検討しています。私たちは一般的にapacheが非常に好きであることに注意してください。しかし、この問題は致命的なものです。修正できない場合、Apacheは使用できません。

代替手段は次のとおりです。

  • Tomcatのみ
  • Glassfish(Tomcatから分岐したJavaアプリサーバー)
  • Jetty(Javaサーバー)
  • 樹脂
  • LightTPD(軽量HTTPサーバー)
  • Nginx(軽量HTTPサーバー)

私の考えでは、ソリューションは2つのキャンプに分類されます。Glassfishな​​どの純粋なJavaキャンプと、または、現在のApache + Tomcatなどの分割キャンプ。純粋なJavaソリューションのアイデアが気に入っています。可動部分が少ないほど、誤動作が少なくなるはずです。しかし、それらのいずれかがPHP、.htaccessファイルなどをサポートしていますか?

理論的には、別の方法で分割を行うことができます-それらの機能を必要とするビットのみでApacheにプロキシするシンプルなフロントエンドがありますが、実際には要求の80%になります。

人々はどのような選択肢を提案しますか?


「迷惑なショーストッパーの問題」をもう少し詳しく説明していただけますか、それともまったく無関係ですか。
マーク

詳細については、StackOverflowページへのリンクに従ってください。これは、クライアントに誤った応答が配信されるバグです。HTMLファイルの代わりにJSファイルまたはCSSファイルを取得することもあれば、まったく間違ったページを取得することもあります。考えられる限り、ApacheとTomcat内のほとんどすべてを試しました。
マーカスダウニング

回答:


7

あなたの問題はAJPに関連していると強く思います。

私は数週間前に彼がメインのTomcat開発者の1人と一緒にコースを受講しました(彼はそれを実行していました)、彼のアドバイスはAJPやmod-JKなどを避け、通常のmod-proxy HTTPに固執することでした。

理由:

  1. これは、最も成熟した安定したTomcatコネクターです。
  2. どちらのAJP実装も一貫して開発されていません。両方のプロジェクトが少し停止/開始しました。
  3. この状況では、NBIOはブロッキングIOを超える実際のパフォーマンスの向上をもたらしません。

私のアドバイス、現在の設定で通常のmod-proxy HTTPを使用してみてください。それはあなたにとって最小の変更であり、最も広く使用されている安定したTomcatデプロイメントアーキテクチャに連れて行ってくれます。

/リッチー


試してみたいと思います。パフォーマンスの違いについて明確な数字はありますか?
マーカスダウニング

通常のmod-proxyを使用しながら、正しいホスト名をTomcatに送信するにはどうすればよいですか?現時点ではすべてがローカルホストとして受信されていると確信しています。
マーカスダウニング

2
ProxyPreserveHost Onはおそらくあなたが探しているものです。 httpd.apache.org/docs/2.2/mod/mod_proxy.html#proxypreservehost
Stephen Veiss 2009年

5

私の現在の好ましいスタックは、Apacheの代替としてnginxを使用することです。必要に応じて、php-fpmはPHPの必要性を満たします。このようなセットアップは、Rails、Magento、SugarCRMなどのアプリをデプロイするためにうまく機能しました。


4

Glassfishは、Grizzly(NIOベース)を使用するため、Tomcatよりもスケーラブルになります。Javaの要件のため、Tomcat、Jetty、Glassfishのバリエーション以外の多くのオプションはありません。PHPはQuercusを使用して実行できますが、Nginxを使用して展開することをお勧めします。


2

JavaにはPHPの実装がありますが、私が知っている(しかし使用していない)ものはこれです。GlassFish(WordPressを含む)にインストールする方法についてのブログ投稿がありますが、tomcatへのインストールも同じだと思います。.htaccessについては、そこにあるものを正確に記述していませんが、URLの書き換え用である場合は、同じセマンティクスで同じ作業を行うUrlRewriteFilterがあります 。


.htaccessファイルは、主にWordPressによって生成されたものであるため、いくつかの単純なRewriteRulesが含まれています-Marcus
Downing

PHPはそれらをサポートしないと思いますが、それらを読み取り、定義をフィルターに渡すプロセスを用意するのは難しくありません。
デイビッドラビノウィッツ

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