私たちのウェブサイトはリアルタイム更新の必要性を開発しており、さまざまな彗星/ロングポーリングソリューションを検討しています。調査の結果、私たちはnginxを4つの竜巻インスタンス(Amazon EC2でホストされている)へのリバースプロキシとして解決しました。現在、従来のLAMPスタックを使用しており、PHPでかなりの量のコードを書いています。私たちは、このソリューションをより良くサポートするために、PHPコードをPythonに変換していきたいと考えています。ここに私の質問です:nginxのための1つを:クアッドコアプロセッサを想定しApache/PHPからNginx/Tornado/Python
、nginxのは4つの竜巻インスタンスと同じサーバー上で実行されているため、それ大丈夫ですか、であることは、2台の別々のサーバーを実行することをお勧めします4つのトルネードプロセスに1つ
Nginxの前でHAProxyを使用する利点はありますか? Nginxは単独で負荷分散をうまく処理しないのですか?
私の研究から、Nginxは優れたURLリダイレクトモジュールを持っていないようです。リダイレクトにRedisを使用することをお勧めしますか?もしそうなら、RedisはNginxの前か、後ろにいるべきですか?
アプリケーションコードの大部分は、リアルタイムの更新には関係しません。このコードにはいくつかのデータベースクエリとファイルシステムの読み込みが含まれているため、非ブロック型アプリケーションサーバーには適していません。私の研究では、ブロッキングの問題が複数のTornadoインスタンスを持つだけで緩和されているのに対し、コールをブロックするには別のアプリケーションサーバー(Gunicorn/Django/Flaskなど)を使用することをお勧めします。ノンブロッキングサーバーを使用しているときにブロッキングコールを処理する最善の方法は何ですか?
私たちのコードをPHPからPythonに変換する作業は時間がかかるでしょう。 Nginxの背後にあるApache/PHPとTornadoを同時に実行することは受け入れられますか?それとも、言語(Gornicorn/Django/flaskまたはトルネード単独の竜巻か)に固執すべきですか?
迅速な対応をありがとう! – xxjbmxx
)私たちは実際にリバースプロキシとしてnginxを使用する予定です。 nginxプロセスが、同じサーバー上で実行されている場合、tornodoインスタンスの1つを圧縮するのに十分なリソースを消費することが可能であるかどうか不思議でした。 4。)どのPythonフレームワークをブロック呼び出し(djangoが不要な場合)のためにお勧めですか? – xxjbmxx
それは絶対に大丈夫です - あなたはnginx +竜巻とのトラブルを1つのサーバー上で得ることはありません。コールをブロックする単純なタスクについては、Flaskを見てください。優れた管理者とシンプルなデータベーススキーマ操作ツールが必要な場合は、djangoを入手してください。 –