odooのiptablesを変更した後にWebメールの問題を解決する方法は?

odooのiptablesを変更した後にWebメールの問題を解決する方法は?

Amazon EC2インスタンスOSを使用しています:ubuntu 14.04

まず、odooサーバーを使用してウェブサイトを設計します。これはアクセスによって行われます。http://example.com:8069

その後、Vestaパネルをインストールし、私のドメインのメールアカウントを作成しました。このアカウントはroundcubeで、次の方法でアクセスできます。http://example.com/webmail

odooでウェブサイトを開発した後、rc.localにルールを追加しました:iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8069

私のメインドメインからodoo Webサイトにアクセスできますが、それ以降からそのURLに移動すると、odoo 404ページが送信され、Webメールにアクセスできなくなります。

仕事にはodooとウェブメールが必要です。助けてくれてありがとう。

答え1

問題は、ラウンドキューブがポート80にバインドされることです。 iptablesを使用してすべてのポート80トラフィックをoodoにリダイレクトするまではうまくいきます。これにより、oodoトラフィックは正常に機能しますが、roundcube用のトラフィックもiptablesによってキャプチャされ、oodoに送信されます(したがって、roundcubeにアクセスしようとするとoodo 404ページが表示されます)。

ほとんどのLinuxシステムと同様に、この問題を解決する方法はいくつかありますが、要求を処理するためにリバースプロキシを設定することをお勧めします。プロキシは同じサーバー上で実行でき、ポート80に着信要求を処理できます。リクエストを分析し、必要に応じてroundcubeまたはoodoに渡します。

おそらくNginxをプロキシとして使用し、次のようにします。

  1. roundcubeをポート8000​​(またはまだ使用していない他の高いポート)にバインドします。これは、プロキシサーバー用にポート80を取得する必要があるためです。
  2. Nginxをインストールし、ポート80にバインドされたリバースプロキシとして設定します。外観に関するいくつかの情報は次のとおりです。http://nginx.com/resources/admin-guide/reverse-proxy/
  3. Nginx設定には、/ webmailに対するすべての要求をキャプチャし、それをlocalhost:8000(roundcubeインストール)にプロキシする場所ブロックがあります。
  4. 他のすべての要求はlocalhost:8069(oodoインストール)にプロキシ転送されます。

どのプロキシを使用するかは、あなたが好むものによって異なります。私はNginxを使用する可能性が高いですが、Squid、Apache、または他の多くのツールも使用できます。 Webサーバーとしてデフォルトでroundcubeが使用するものはわかりませんが、他のものをインストールせずにoodoリクエストをプロキシするために使用できます.

これは、少なくともあなたが正しい方向に行くことを願っています。

関連情報